第一轮
Day0
0天警告
Day1
开考,听说是 姜sir 批卷,也没啥好紧张的了。
选择题靠我垃圾的C++,第一题就错了/cf,两道数学题和位运算倒是秒切。阅读程序很顺利,只错了一道,到了补全程序只剩 \(10\text{min}\) 了,瞎蒙了几个,居然对的还不少。
出来后找 byr 对答案,他说他忘了,差评。
Day\(\infty\)
出成绩了,\(80 pts\),稳过线。
顺便膜拜一下 wxy 大佬:一个初一女生,结果考了 \(93pts\),全市第一名。
第二轮
Day0
坐 @register_long_double 大佬的爸爸的车去日照考试。
中途 @register_long_double 用我的手机玩 原神,结果吐了,我的手机啊啊啊!这下真是玩原神玩的了。
刚下高速就看见了 @ebzyl 和他的父母,巧合的事发生了/jy。
下午大概五点到了房间,颓了会儿知乎,然后写了一下【CSP-J2019】纪念品(埋下伏笔),很奇怪用二维数组做背包 \(45pts\),但把第一维删掉就AC了,@I_am_kunzi 在那玩一款我也不知道叫什么的小游戏。
六点去吃饭,看见了 @BYR_KKK、@CheZiHe929 和 @Minecraft_lb 大佬,@ljlbj_fengyuwuzu 问我认不认识xxx(我的一个同班同学),然后把我带去 @bylgd 桌前,他居然知道关于 xxx 的一些不可描述的事情,十分震惊。
吃完饭去试机,发现给我们发了 CSP-J2019 的题目,诶下午恰好做了,\(30\) 就分钟AK了。出来找不找我们队,转了好一会才找到他们在旗杆下面233。
回酒店打了个【CSP-J2020】方格取数,然后定了个明天 \(6:00\) 的闹钟,铃声是《千本樱》,就睡了。
Day1
我和 @I_am_kunzi 被昨晚定的《千本樱》吵醒了,我起来看了会QQ小世界,然后就去吃早饭,\(7:30\) 吃完早饭就坐大巴上路了。
在大巴上看了会儿 LIS 和 背包(结果没考),到山外后 姜sir 叮嘱了几句就上考场了。
\(8:05\) 进了考场,打了个快读和 LIS 就开考了。
直接开 T1,推了几组发现规律,直接把第一问做了,用一个 while 循环直到 \(n \ne 0\),每次减去 \(\left \lceil n/3\right \rceil\)。第二问也十分简单,直接在第一问的 while 循环里做即可,当 \((n-1) \mid 3\) 时,正好能拿走最后一个苹果,即第 \(n\) 号苹果,\(15 \text{min}\) 切了。
Code:
#include<bits/stdc++.h>
#define int long long
using namespace std;
inline int read(){
int x=0;
int f=1;
char ch=getchar();
while(ch>'9'||ch<'0'){
if(ch=='-')f=-1;
ch=getchar();
}
while(ch<='9'&&ch>='0'){
x=(x<<3)+(x<<1)+(ch-48);
ch=getchar();
}
return x*f;
}
int x;
signed main(){
freopen("apple.in","r",stdin);
freopen("apple.out","w",stdout);
int cnt=0;
int n=read();
bool flag=true;
while(n){
cnt++;
if((n-1)%3==0&&flag){
x=cnt;
flag=false;
}
if(n%3==0)n=n-n/3;
else n=n-(n/3+1);
}
cout<<cnt<<' '<<x;
return 0;
}
T2 一眼丁真,鉴定为 贪心(因为普及组 T2 不可能是dp)。
不难发现,车每次加油的站点的油价一定是降序的,这样才能使最终总价最小。我们维护目前经过站点的最小油价,以及到下一个可加油站点所经过的路程。
每次找到比上一个加油站点油价小的就要在这里加油,并更新上述变量。我们还要维护一个汽车目前能跑的千米数,因为每次加油后跑到
下一个要加油的站点可能会有剩下的油,还能跑一段距离,可以减少当前的加油量,因此我们每次更新答案时还要考虑这种情况。
注意当到达最后一个站点要停止,并做一次更新。
Code:
#include<bits/stdc++.h>
#define int long long
using namespace std;
inline int read(){
int x=0;
int f=1;
char ch=getchar();
while(ch>'9'||ch<'0'){
if(ch=='-')f=-1;
ch=getchar();
}
while(ch<='9'&&ch>='0'){
x=(x<<3)+(x<<1)+(ch-48);
ch=getchar();
}
return x*f;
}
const int MAXN=1e5+10;
int a[MAXN],v[MAXN];
int ans=0;
int sygl=0;
signed main(){
freopen("road.in","r",stdin);
freopen("road.out","w",stdout);
int n=read(),d=read();
for(int i=2;i<=n;i++)v[i]=read();
for(int i=1;i<=n;i++)a[i]=read();
int tmp=0;
int lst=a[1];
for(int i=1;i<=n;){
while(i++){
tmp+=v[i];
if(a[i]<lst||i==n)break;
}
if(i>n)break;
ans+=(((long long)ceil((tmp-sygl*1.0)/(d*1.0)))*lst);
sygl+=(((long long)ceil((tmp-sygl*1.0)/(d*1.0)))*d);
lst=a[i];
sygl-=tmp;
tmp=0;
}
cout<<ans;
return 0;
}
T3 不出意外,又是大模拟,我一个 \(7\) 年级蒟蒻根本不会啊qwq。
想把 性质C 的 \(50pts\) 得到,眼瞎没看到求根公式,所以暴力求解了一下,但可能会被卡。
因为不是正解,就不贴代码了。
T4 一开始写了个 A*,结果样例都过不了,无奈输出 \(-1\)。
出来后得知 @I_am_kunzi 前三道样例全过了,看来 \(300+\) 省前十是稳了。其他人也都好强,一问都是 \(200+\)。
吃了午饭便返程了。
下午老师发了代码,我先到洛谷测了一下是\(100+100+40+10 = 250\)。很明显是 \(T3\) 暴力被卡了,小图灵是
\(100+100+50+10 = 260\) 倒是挺理想,打听了一圈好像小图灵比洛谷数据准,还强(?)
小图灵出了个一键查分功能,查了一下我似乎是全省第 \(38\),似乎队里几个大佬都没我高/jk。
洛谷我们队有几个大佬和我分差不多,现在我就在赌 CCF 的数据强度,希望不要卡我 T3(当然也有可能洛谷数据出错了,测了好几个OJ都是 \(50\))。
就算 T3 保龄一等都是稳的。但如果想要五级,就有赌的成分了。
既然考完了,那就没有必要去想了,现在我的主要任务就是备战期中考试,下个周一切都将揭晓!
标签:ch,int,long,sygl,100,游记,J2023,CSP From: https://www.cnblogs.com/FinderHT/p/17780257.html