codeforces 567D One-Dimensional Battle Ships (set)
来源:互联网 发布:手机转区软件 编辑:程序博客网 时间:2024/05/22 11:52
/*题意:在1~n的格子里,有k艘,每艘长为a的船,并且这些船不相交且不能相邻。现在有m个射击,每个射击给你一个位置(1~n),并且不会重复。由于对方每次都说没打中,因此你想找到至少要射击几次才能证明对方说谎。若不能证明对方说谎,输出-1。思路:n个格子,船长为a,则能放(n+1)/(a+1)艘船。(由于要求不能相邻,因此a+1)。每次在set中插入射击点,二分上下界 原来可以放的船数减去因这个点而不能放的与k进行比较*/# include<stdio.h># include<algorithm># include<string.h># include<set>using namespace std;set<int>s;set<int>::iterator it1;set<int>::iterator it2;int vis[200010];int num[200010];int main(){ int n,k,a,i,m; while(~scanf("%d%d%d",&n,&k,&a)) { s.clear(); scanf("%d",&m); for(i=1; i<=m; i++) scanf("%d",&num[i]); int tmp=(n+1)/(a+1);///原来可以放这么多 s.insert(0);//上下边界 s.insert(n+1); memset(vis,0,sizeof(vis)); for(i=1; i<=m; i++) { if(vis[num[i]]) continue; vis[num[i]]=1; s.insert(num[i]); it1=s.lower_bound(num[i]); it1--; it2=s.upper_bound(num[i]); tmp-=((*it2)-(*it1))/(a+1)-((*it2)-num[i])/(a+1)-(num[i]-(*it1))/(a+1); if(tmp<k) { printf("%d\n",i); break; } // printf("%d %d\n",*it1,*it2); } if(i>m) printf("-1\n"); } return 0;}
0 0
- codeforces 567D One-Dimensional Battle Ships (set)
- codeforces 567D. One-Dimensional Battle Ships
- Codeforces 567D One-Dimensional Battle Ships
- CodeForces 567D One-Dimensional Battle Ships
- codeforces(567D)--D. One-Dimensional Battle Ships
- codeforces#314D&567D One-Dimensional Battle Ships (Set)
- CodeForces #Pi D.One-Dimensional Battle Ships
- 567D One-Dimensional Battle Ships(set)
- Codeforces Round #Pi (Div. 2)567D One-Dimensional Battle Ships(set)
- codeforces 567D One-Dimensional Battle Ships (map维护)
- CodeForces 567D One-Dimensional Battle Ships【二分】
- One-Dimensional Battle Ships CodeForces
- 【CodeForces】567D - One-Dimensional Battle Ships & 【51Nod】1521 - 一维战舰(STL - set & 二分)
- Codeforces Round #Pi (Div. 2) D. One-Dimensional Battle Ships
- [CodeForces 567D] One-Dimensional Battle Ships (区间隔断计数)
- 【打CF,学算法——三星级】CodeForces 567D One-Dimensional Battle Ships (二分)
- set codeforces567D One-Dimensional Battle Ships
- CF 567D(One-Dimensional Battle Ships-二分)
- 看懂java的class文件(字节码)(好)
- git 和github教程
- select下拉框可输入值
- 新的Android databinding与android-apt plugin冲突
- Mac 10.10 配置tomcat 服务器
- codeforces 567D One-Dimensional Battle Ships (set)
- Oracle创建表空间,用户,分配权限
- leetcode--Two Sum II - Input array is sorted
- Hdu 2015 Multi-University Training Contest6
- eclipse从数据库逆向生成Hibernate实体类
- FileToData与DataToFile(优化版,txt为原始文件2倍大小)
- 一次「Too many open files」故障
- Codeforces 567 E. President and Roads
- Symmetric Tree