随笔分类 - 比赛
摘要:A:签到。 B:仅当只有一种字符时无法构成非回文串。 #include<iostream> #include<cstdio> #include<cmath> #include<cstdlib> #include<cstring> #include<algorithm> using namespace
阅读全文
摘要:A:对于每个B,会和其右边的每个W交换一次。 #include<iostream> #include<cstdio> #include<cmath> #include<cstdlib> #include<cstring> #include<algorithm> using namespace std
阅读全文
摘要:日常猝死。 A:f[i]表示子树内包含根且可以继续向上延伸的路径的最大价值,统计答案考虑合并两条路径即可。 #include<iostream> #include<cstdio> #include<cmath> #include<cstdlib> #include<cstring> #include
阅读全文
摘要:A:签到。 #include<iostream> #include<cstdio> #include<cmath> #include<cstdlib> #include<cstring> #include<algorithm> using namespace std; #define ll long
阅读全文
摘要:A:签到。 #include<iostream> #include<cstdio> #include<cmath> #include<cstdlib> #include<cstring> #include<algorithm> using namespace std; #define ll long
阅读全文
摘要:A:签到。 #include<iostream> #include<cstdio> #include<cmath> #include<cstdlib> #include<cstring> #include<algorithm> using namespace std; #define ll long
阅读全文
摘要:A:签到。room里有一个用for写的,hack了一发1e8 1,结果用了大概600+ms跑过去了。惨绝人寰。 #include<iostream> #include<cstdio> #include<cmath> #include<cstdlib> #include<cstring> #inclu
阅读全文
摘要:开场被A劝退,写了得有50min于是不敢交了。unrated了喜闻乐见。 A:瞎猜都能猜到如果要走到那条直线上,进入直线的点横坐标或纵坐标与起点相同,离开直线的点横坐标或纵坐标与终点相同,证明脑补一下比较显然(事实上也就是以起点终点为对角点构成的矩形与该直线的交点)。看错题以为到直线上的那个点必须是
阅读全文
摘要:A:签到。 #include<iostream> #include<cstdio> #include<cmath> #include<cstdlib> #include<cstring> #include<algorithm> using namespace std; #define ll long
阅读全文
摘要:夜晚使人着迷。没有猝死非常感动。 A:显然对于水平线段,只有横坐标的左端点为1的时候才可能对答案产生影响;对于竖直直线,如果要删一定是删去一段前缀。枚举竖直直线删到哪一条,记一下需要删几条水平线段就可以了。想当然的以为竖直直线横坐标是升序排的,因为这个wa了两发感觉非常惨。 #include<ios
阅读全文
摘要:A:枚举答案即可。注意答案最大可达201,因为这个wa了一发瞬间爆炸。 #include<iostream> #include<cstdio> #include<cmath> #include<cstdlib> #include<cstring> #include<algorithm> using
阅读全文
摘要:A:差点开场懵逼。只要有相邻两位不同就可以作为答案。 #include<iostream> #include<cstdio> #include<cmath> #include<cstdlib> #include<cstring> #include<algorithm> using namespace
阅读全文
摘要:A:设f[i][j][0/1]为前i个数第i位为j且第i位未满足/已满足限制的方案数。大力dp前缀和优化即可。 #include<iostream> #include<cstdio> #include<cmath> #include<cstdlib> #include<cstring> #inclu
阅读全文
摘要:A:真的懵逼了。冷静了半天之后决定二分一下答案,然后先a安排上尽量小的再贪心地一个个扩大。40min才过。这个做法非常怂的以代码复杂度和时间复杂度为代价换取了比较稳的正确性,事实上由于1~n可以组合出1~n*(n+1)/2的所有数,只要从大到小贪心地放就可以了。 #include<iostream>
阅读全文
摘要:这场打的顺手到不敢相信。如果不是vp的话估计肯定打不到这个成绩。 A:最大显然,最小的话每次暴力给最小的+1。 #include<iostream> #include<cstdio> #include<cmath> #include<cstdlib> #include<cstring> #inclu
阅读全文
摘要:因为睡过了只好vp。 A:阅读理解。 #include<iostream> #include<cstdio> #include<cmath> #include<cstdlib> #include<cstring> #include<algorithm> using namespace std; in
阅读全文
摘要:A:开场懵逼。然后发现有人1min过,于是就sort了一下,于是就过了。正经证明的话,考虑回文串两端点一定是相同的,所以最多有Σcnti*(cnti+1)/2个,cnti为第i种字母出现次数。而sort是可以达到这个最大值的。 #include<iostream> #include<cstdio>
阅读全文
摘要:A:签到。 #include<iostream> #include<cstdio> #include<cmath> #include<cstdlib> #include<cstring> #include<algorithm> using namespace std; int read() { in
阅读全文
摘要:打猝死场感觉非常作死。 A:判一下起点和终点是否在其两侧即可。 #include<iostream> #include<cstdio> #include<cmath> #include<cstdlib> #include<cstring> #include<algorithm> using name
阅读全文
摘要:A:搜索好难啊根本不会啊。 B:暴力枚举给哪段前缀乘,维护一些前后缀最大最小值之类的东西就很好算了。 #include<iostream> #include<cstdio> #include<cstdlib> #include<cstring> #include<cmath> #include<al
阅读全文

浙公网安备 33010602011771号