CF1665
在fr的推荐下 头一次打了CF,感觉被开阔了啊,没退役那会总是害怕英文水平不够,倒也是多想了。
断断续续的,就开始打了。起初还在看gemini,昨天又赌了1000块还上了热搜是我没想到的。后来妹子找我听歌,于是就把直播间关了。
中午点外卖剩了一整碗凉皮,晚上十一点多开盖,有一种奇怪的口感。我万万没想到凉皮也会有类似面条的性质,不能久放(太缺乏生活常识了)。
回归正题,关于这次比赛。
- A是个小构造,一开始还推了两个式子,发现没用。后来
O(n^4) 打表找了个规律,就很显然了。
read(n);
space(1),space(n-3),space(1),enter(1);
- B 也是构造,数与数之间除了出现次数没有差别。先找出一个众数
x ,目标是把一个数组全填成x ,模拟过程就可以找到方法了。
read(n);
if(n==1){
read(a[1]);
enter(0);
continue;
}
memset(a,0,sizeof(a));
memset(m,0,sizeof(m));
memset(cnt,0,sizeof(cnt));
rec=0;
int x,ans=0;
for(int i=1;i<=n;i++) read(a[i]),m[i]=a[i];
sort(m+1,m+1+n);
sort(a+1,a+1+n);
tot=unique(m+1,m+1+n)-(m+1);
// for(int i=1;i<=tot;i++) space(m[i]);
// putchar('\n');
for(int i=1,j=1;i<=n&&j<=tot;i++){
// space(a[i]),enter(m[j]);
if(a[i]==m[j]) cnt[j]++;
else cnt[++j]++;
if(cnt[j]>rec) rec=cnt[j];
}
// puts("done");
x=rec;
while(x*2<n){
ans+=1+x;
x<<=1;
}
if(x<n) ans+=n-x+1;
enter(ans);
-
C 是个树上的贪心,明确了搜索每个节点的直系儿子的策略,最后贪心搞错了。
其实还是很简单的,因为对于两个不同节点
u ,v ,他们的儿子们互不影响,一定都需要一次inject 操作,在这个基础上一次贪心即可 ,也可以去二分。啊昨天写了好久贪心,我还没来得及改。
-
有大佬说 D 比 C 简单,我果断去看了一眼。
交互题!
我果断放了。
E题一眼没出,也放了。(深刻吸取noip用大量时间打T4模拟的白痴教训)
-
所以这么菜的我只能切A和B(bushi),总的来说打得比较休闲,头一次打嘛,要是文化课业不重的话,以后还会接着打的。
现在是四月九号早上7:42,语文网课。老师刚叫我回答问题,我磕绊地答出来了。夜里只睡了5个小时,但我还是感到充实,饱满,富有生机,和挂露的春芽一样,弱小的,我们都经历了冷峻的寒冬,我们都迎来了重新的诗意。