标记条件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;
}
文章结束给大家分享下程序员的一些笑话语录: 程序员打油诗
写字楼里写字间,写字间里程序员;
程序人员写程序,又拿程序换酒钱。
酒醒只在网上坐,酒醉还来网下眠;
酒醉酒醒日复日,网上网下年复年。
但愿老死电脑间,不愿鞠躬老板前;
奔驰宝马贵者趣,公交自行程序员。
别人笑我忒疯癫,我笑自己命太贱;
不见满街漂亮妹,哪个归得程序员。

浙公网安备 33010602011771号