「 E Z E C 」 「EZEC」 「EZEC」 R o u n d 1 Round1 Round1 开学信心赛 总结
这次比赛我考了
245
245
245分,还算可以,因为这次题目太变态了。
这次我只讲一下前四题我的想法。
后面两题太变态了。
第一题:「EZEC-1」成绩
解题方法
这道题直接模拟。
数据很良心,没有出一些毒瘤数据。
得分情况
比赛时满分。
代码
注:它的数据太水,如果出毒瘤一点,我肯定卡不过。
#include<bits/stdc++.h>
using namespace std;
char a[10001];
int n,ck;
void dg(int x)
{
cout<<"0.";
for(int i=1;i<=x-1;i++)
cout<<"0";
cout<<"1";
}
void dg1(int x)
{
cout<<"1";
for(int i=1;i<x;i++)
cout<<"0";
}
int main()
{
scanf("%s",a+1);
n=strlen(a+1);
for(int i=1;i<=n;i++)
{
if(a[i]=='.')
{
ck=i;
break;
}
}
if(ck==0)
{
int j=n;
for(int i=1;i<=n;i++)
{
if(a[i]=='0')
{
j--;
continue;
}
cout<<a[i]<<'*';
dg1(j);
if(i!=n) cout<<'+';
j--;
}
return 0;
}
int j=ck-1;
for(int i=1;i<=ck-1;i++)
{
if(a[i]=='0')
{
j--;
continue;
}
cout<<a[i]<<'*';
dg1(j);
cout<<'+';
j--;
}
j=1;
for(int i=ck+1;i<=n;i++)
{
if(a[i]=='0')
{
j++;
continue;
}
if(i==n)
{
cout<<a[i]<<'*';
dg(j);
}
else
{
cout<<a[i]<<'*';
dg(j);
cout<<'+';
}
j++;
}
}
第二题:「EZEC-1」出题
解题方法
对于
k
=
0
k=0
k=0的做法,直接跑一遍
01
01
01背包。
对于
n
≤
10
n\leq10
n≤10的做法,直接暴力搜索。
对于
90
90
90分的做法,直接根据搜索做成
d
p
dp
dp。
对于满分的做法,当所有时间小于等于
m
m
m时,直接贪心(不知道为什么要特判这种情况)。
得分情况
这题有毒瘤数据。
很多人卡
90
90
90分,包括我。
为啥最后一个点要贪心?
我在比完赛加了个特判,满分,what ?
代码
这是满分的代码。
#include<bits/stdc++.h>
using namespace std;
long long n,m,k,a[1001],b[1001],ans,f[4][1001][1001],s;
bool cmp(long long a,long long b)
{
return a>b;
}
int main()
{
cin>>n>>m>>k;
for(long long i=1;i<=n;i++) cin>>a[i]>>b[i],s+=b[i];
if(s<=m)
{
sort(a+1,a+1+n,cmp);
for(long long i=1;i<=k;i++) ans+=a[i]*2;
for(long long i=k+1;i<n;i++) ans+=a[i];
cout<<ans;
return 0;
}
for(long long i=1;i<=n;i++)
{
for(long long p=m;p>=b[i];p--)
{
for(long long l=0;l<=k;l++)
{
f[0][l][p]=max(f[0][l][p],f[0][l][p-b[i]]+a[i]);
if(l>0) f[0][l][p]=max(f[0][l][p],f[0][l-1][p-b[i]]+a[i]*2);
f[1][l][p]=max(f[1][l][p],f[0][l][p]);
if(l>0) f[1][l][p]=max(f[1][l][p],f[1][l-1][p-b[i]]+a[i]*2);
}
}
}
cout<<f[1][k][m];
}
第三题:「EZEC-1」甜品
解题方法
对于
35
35
35分的方法(最后一个数据卡过),直接暴力搜索。
对于满分的方法,
d
p
dp
dp,不懂系列。
得分情况
比赛时
35
35
35分。
我想打记忆化,可是没打成。
注意:要用
s
c
a
n
f
scanf
scanf和
p
r
i
n
t
f
printf
printf才能拿到
35
35
35分,最好用
O
2
O2
O2。否则只能
30
30
30分。
第四题:「EZEC-1」数列
解题方法
对于
20
20
20分的方法,直接暴力。
后面不懂。
得分情况
比赛时 20 20 20分。
本文分享了EZEC-1信心赛的解题经验,详细解析了前四题的解题思路,包括成绩处理、出题策略、甜品选择及数列问题。涉及直接模拟、01背包、贪心算法、DP等方法。
513

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



