2021.07.19【普及组】模拟赛C组 赛后总结
程序员文章站
2024-03-18 23:13:04
...
前言
这次比赛没有想象中的好,19名,223.3分。T1暴力33.3,T2暴力30,T3奇怪地WA60,T4AC。
T1 数字游戏
动态规划
当时没想到状态转移方程,时间也不多了,就直接暴力骗分。
详见https://blog.csdn.net/jz_2021_fengyue/article/details/118911299?spm=1001.2014.3001.5502
T2 吃蛋糕
拓展欧几里得。a,b,c题目都告诉我们了,关系式也是。
当时以为暴力能过就没多想。
详见https://blog.csdn.net/jz_2021_fengyue/article/details/118915114
T3 守望者的逃离
贪心算法。能闪烁就闪烁,不能闪烁就判断是等划算还是走划算。
当时想到了,也实现了,样例也过了,但因为一些奇奇怪怪的原因WA60。我想是因为程序被我写复杂了。
#include <cstdio>
#include <cmath>
#define ll long long
using namespace std;
ll m,s,t;
int main()
{
freopen("escape.in","r",stdin);
freopen("escape.out","w",stdout);
scanf("%lld %lld %lld",&m,&s,&t);
int s_=0,s__=0;
for (int i=1; i<=t; i++)
{
if (m>=10)
{
m-=10;
s_+=60;
}
else m+=4;
s__+=17;
if (s_>s__) s__=s_;
if (s__>s)
{
printf("Yes\n");
printf("%lld",i);
return 0;
}
}
printf("No\n");
printf("%lld",s__);
return 0;
}
T4 双塔问题
我就算从这里跳下去,也不会写这道题的总结的!
哎呀妈真香!
高精度,坑死了!
#include <cstdio>
using namespace std;
const int N=10005;
int a[N];
void mult()
{
int t=0;
for (int i=1; i<=a[0]; i++)
{
a[i]*=2;
a[i]+=t;
t=a[i]/10;
a[i]%=10;
if (i==a[0] && t) a[0]++;
}
}
int main()
{
int n;
freopen("hanoi.in","r",stdin);
freopen("hanoi.out","w",stdout);
scanf("%d",&n);
a[0]=1;
a[1]=1;
for (int i=1; i<=n; i++) mult();
a[1]--;
for (int i=1; i<=a[0]; i++)
{
if (a[i]<0)
{
a[i]+=10;
a[i+1]-=1;
}
else break;
}
mult();
for (int i=a[0]; i>=1; i--) printf("%d",a[i]);
return 0;
}
总结
这次比赛要是T3过了,能擦边rank10。下次能模拟即模拟,能暴力即暴力,不要用奇奇怪怪的算法和数据结构。
上一篇: 例题6-2 UVa514-Rails
下一篇: NOIP2017普及组比赛总结
推荐阅读
-
2017.08.05【NOIP提高组】模拟赛B组总结
-
2021.07.19【普及组】模拟赛C组 赛后总结
-
JZOJ 2017.12.09【NOIP提高组】模拟赛C组
-
纪中集训2020.01.14【NOIP普及组】模拟赛C组总结—————— 数制转换
-
2020.09.05【NOIP提高组&普及组】模拟赛C组1总结
-
2017.08.18【NOIP提高组】模拟赛B组总结
-
纪中集训2020.01.14【NOIP普及组】模拟赛C组总结——————小球
-
2020.10.24【普及组】模拟赛C组总结
-
纪中集训2020.01.14【NOIP普及组】模拟赛C组总结——————【GDOI2003】求值
-
2020.09.26【普及组】模拟赛C组总结