标记条件Codeforces Round #182 (Div. 2)
上班之余抽点时光出来写写博文,希望对新接触的朋友有帮助。天今在这里和大家一起学习一下标记条件
//A 好久没做了,5.1一过睡房不熄灯了,天今做了一场还是只做了2题。 弱。 #include<iostream> #include<stdio.h> using namespace std; int a[200005],b[200005]; int main() { // freopen("1.txt","r",stdin); int n,m,numx=0,numy=0,x,y; cin>>n>>m; for(int i=0; i<n; i++) { cin>>a[i]; if(a[i]==1) numx++; else numy++; } for(int j=0; j<m; j++) { cin>>x>>y; if((y-x)%2!=0&&(y-x+1)<=2*min(numx,numy)) // 满意这个条件才出输1 cout<<1<<endl; else cout<<0<<endl; } return 0; } //B #include<iostream> #include<stdio.h> #include<cstring> using namespace std; int v[100005],c[100005],t[100005],sum[100005]; int main() { //freopen("1.txt","r",stdin); memset(sum,0,sizeof(sum)); int n,m; cin>>n>>m; cin>>c[0]>>t[0]; sum[0]=c[0]*t[0]; for(int i=1; i<n; i++) { cin>>c[i]>>t[i]; sum[i]=c[i]*t[i]+sum[i-1]; } for(int j=0; j<m; j++) cin>>v[j]; int k=0; for(int j=0; j<m; j++) for(int i=k; i<n; i++) // 第一次TLE了,这里标记一下从次上的i开始节省了时光。 if(v[j]<=sum[i]) { cout<<i+1<<endl; k=i; break; } return 0; }
文章结束给大家分享下程序员的一些笑话语录: 程序员打油诗
写字楼里写字间,写字间里程序员;
程序人员写程序,又拿程序换酒钱。
酒醒只在网上坐,酒醉还来网下眠;
酒醉酒醒日复日,网上网下年复年。
但愿老死电脑间,不愿鞠躬老板前;
奔驰宝马贵者趣,公交自行程序员。
别人笑我忒疯癫,我笑自己命太贱;
不见满街漂亮妹,哪个归得程序员。