codeforces 377D exam贪心判定+二分
来源:互联网 发布:大数据的特点是什么 编辑:程序博客网 时间:2024/05/20 19:49
点击打开链接
贪心判定
考试复习时间可以间断,则如果在第i天考科目day[i],相当于在前i-1天中,要任意填入day[i]个(前i-1天要有day[i]个空位)
贪心:若在x天完成全部考试 第y1和第y2天都能考同一个科目&&y2>y1
显然选择在靠后的第y2天考该科目 y2的空位数>=y1的空位数
#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <queue> #include <stack>using namespace std;typedef long long ll;const int N=1e5+20;int day[N];// day[i] 第i天的内容 exam or whatever int a[N];//a[i] i'th sub复习时间int n,m;int vis[N]; bool check(int x)//判定在x天内能否完成m场考试{//考试复习时间可以间断,则如果在第i天考科目day[i],相当于在前i-1天中,要任意填入day[i]个(前i-1天要有day[i]个空位)//贪心:若在x天完成全部考试 第y1和第y2天都能考同一个科目&&y2>y1//显然选择在靠后的第y2天考该科目 y2的空位数>=y1的空位数memset(vis,0,sizeof(vis));int sub=0;int flag=0;int need=0;//需要的空位 for(int i=x;i>=1;i--) {if(day[i]&&!vis[day[i]]){sub++;need+=a[day[i]];vis[day[i]]=1;continue; }if(need)//不需要空位时,不能复习 {need--;}} //cout<<x<<" "<<sub<<" "<<need<<endl; return sub==m&&need<=0;}int main(){cin>>n>>m;for(int i=1;i<=n;i++)cin>>day[i];for(int i=1;i<=m;i++)cin>>a[i];int l=0,r=n;int ans=-1;while(l<=r)//二分求最值 {int mid=(l+r)/2;if(check(mid)){ans=mid;r=mid-1;}else{l=mid+1;}}cout<<ans<<endl;return 0;}
0 0
- codeforces 377D exam贪心判定+二分
- Exams Codeforces Round#377-D(贪心+二分)
- Codeforces 609D 贪心+二分
- codeforces 732D (二分 贪心)
- 【codeforces 732D】【二分+贪心】
- Codeforces #732D 二分 贪心
- CodeForces 363D 【二分+贪心】
- CodeForces 614D 二分+贪心
- Codeforces Round #377 (Div. 2) D. Exams 贪心+二分
- Codeforces Round #377 (Div. 2) D 贪心+二分
- Codeforces Round #377 (Div. 2)D. Exams(二分+贪心)
- Codeforces 479D Long Jumps(贪心+二分)
- codeforces 732D Exams(贪心+二分)
- codeforces 732D Exams 二分搜索 贪心
- Codeforces 732D Exams【二分+贪心】
- CodeForces 732D Exams 二分+贪心
- codeforces - 732D Exams 【二分 + 贪心】
- CodeForces 363D.Renting Bikes(二分+贪心)
- 彩妆热卖产品
- html table边框 1像素边框 内嵌table边框重合
- cmd jar命令生成jar文件
- java经典多线程面试题
- 让IE6/IE7/IE8浏览器支持CSS3属性
- codeforces 377D exam贪心判定+二分
- Android Studio导入Eclipse项目和一些常见的问题
- python RuntimeError: dictionary changed size during iteration
- Codeforces Round #376 (Div. 2) F. Video Cards(前缀和,好题)
- NO.1 Anaconda2 搭建 openCV
- 马尔可夫随机场(MRF)
- git———study
- emgucv相机标定
- STM32 IAP 在线升级详解