模拟46 考试总结
大鸽子我又来填坑了
考试经过
细节记不清了,开局是比较困,认识到了之后开始写各种暴力,快两个小时看出来T1很水就切了,T2冲了全排列走人,T4想写高斯消元发现要带模数不太会,于是搞T3部分分,但最后没调出来,所以交了测试点分治
100+11+10+0=121 大众分rank6,干了正常人都会干的事,然而并没有比别人多做什么
T1.数数
签到题,然而比别人慢了好久
显然排序不影响答案,那么直接排序然后一直一依次选两边就行,一定最优
每次考虑新加进去的数的贡献,维护所选数列的和就行
#include <bits/stdc++.h>
using namespace std;
#define int long long
const int N=350000;
int a[N];
signed main()
{
int n;cin>>n;
for(int i=1;i<=n;i++)scanf("%lld",&a[i]);
sort(a+1,a+1+n);
int ans=0,an=0,l=1,r=n;
for(int i=1;i<=n;i++)
{
ans+=an;
if(!(i&1))an+=abs(a[r]-a[l]),ans+=abs(a[r]-a[l]),l++,r--;
printf("%lld\n",ans);
}
return 0;
}
简单明了
T2.数树
一道好题,容斥+子树合并
专门学习了一下子树合并,戳这
T3.鼠树
这个题部分分很多,数据也不是很强,一些乱搞可以水过去
班长以她强大的骗分能力获得\(60\)直接rk1
正解是比较恶心的讨论+各种数据结构,极其锻炼代码能力
但是只要思维清楚打出来还是挺顺的,就是不好调
看这里吧,肝了一天……
T4.ckw的树
咕
考试总结
1.及时调整状态,根据实际选择策略
2.得分能力要加强,拿到更多分,乱搞也是本事
予明日所有失败者 赋万千不灭颂歌

浙公网安备 33010602011771号