学习目标:
CCF 过过过!!!
学习内容:
202203-1 未初始化警告:
#include<iostream>
using namespace std;
#define N 100001
int a[N];
int b[N];
int main()
{
int n,k;
int cnt=0;
cin>>n>>k;
int x[N];
for(int i=0;i<n;i++)
{
x[i]=0;
}
for(int i=0;i<k;i++)
{
cin>>a[i]>>b[i];
if(b[i]!=0)
{
if(x[b[i]]==0)
{
cnt++;
}
}
x[a[i]]=1;
}
cout<<cnt<<endl;
return 0;
}
202203-2 出行计划 70分
#include<iostream>
using namespace std;
#define N 100001
struct goplan
{
int time;
int num;
}a[100001];
int cnt=0;
int main()
{
struct goplan plan[N];
int n,m,k,q;
cin>>n>>m>>k;
int t,c;
for(int i=0;i<n;i++)
{
cin>>plan[i].time>>plan[i].num;
}
for(int i=0;i<m;i++)
{
cin>>q;
for(int j=0;j<n;j++)
{
if(plan[j].time>=q+k&&plan[j].time<q+k+plan[j].num)
cnt++;
}
cout<<cnt<<endl;
cnt=0;
}
return 0;
}
100分…
#include<iostream>
#include<cmath>
using namespace std;
#define N 200001
struct goplan
{
int time;
int num;
}a[100001];
int cnt=0;
int q[N];
int main()
{
struct goplan plan[N];
long long int n,m,k;
cin>>n>>m>>k;
int t,c;
for(int i=0;i<n;i++)
{
cin>>plan[i].time>>plan[i].num;
int x=plan[i].time-k-plan[i].num+1,y=plan[i].time-k;
if(y<=0) continue;
x=max(1,x);
q[x]++;
q[y+1]--;
}
for(int i=1;i<=200000;i++) q[i]+=q[i-1]; //计算前缀和
int query;
for(int i=0;i<m;i++)
{
cin>>query;
cout<<q[query]<<endl;
}
return 0;
}
学习时间:
30min