题目:Codeforces Beta Round #4 (Div. 2 Only)
判断这个数是否能分成两个偶数之和
#include <cstdio>
bool is_ok(int n)
{
if(n%2==0)
{
n-=2;
if(n%2==0&&n>0)
return true;
return false;
}
return false;
}
int main()
{
int n;
scanf("%d",&n);
if(is_ok(n))
printf("YES\n");
else
printf("NO\n");
return 0;
}
B: Before an Exam
给你n天内每天学习的的最小时间和最大时间以及n天的目标,问是否能达成,如果可以输出n天内学习的小时数
#include <cstdio>
#include <algorithm>
#include <iostream>
using namespace std;
int a[40],b[40];
int main()
{
int n,sum;
scanf("%d%d",&n,&sum);
int n_a=0,n_b=0;
for(int i=1;i<=n;i++)
{
scanf("%d%d",&a[i],&b[i]);
n_a+=a[i];
n_b+=b[i];
}
if(sum<=n_b&&sum>=n_a)
{
printf("YES\n");
for(int i=1;i<=n;i++)
{
if(sum==n_a)
break;
int temp=min(b[i]-a[i],sum-n_a);
n_a+=temp;
a[i]+=temp;
}
for(int i=1;i<=n;i++)
{
if(i==n)
printf("%d\n",a[i]);
else
printf("%d ",a[i]);
}
}
else
printf("NO\n");
return 0;
}
C: Registration System
#include <cstdio>
#include <string>
#include <iostream>
#include <algorithm>
#include <map>
using namespace std;
map<string ,int> m;
int main()
{
int n;
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
string str;
cin>>str;
if(m.find(str)==m.end())
{
cout<<"OK"<<endl;
m[str]=0;
}
else
cout<<str<<++m[str]<<endl;
}
return 0;
}
D: Mysterious Present
DP+DFS 表示DP不会 = =
本文提供了Codeforces Beta Round #4比赛中四道题目的解决方案,包括判断整数能否拆分为两个偶数之和的算法、规划学习时间表以达到目标小时数的方法、实现注册系统的用户名检查功能,以及使用DP+DFS解决神秘礼物问题。
336

被折叠的 条评论
为什么被折叠?



