较水题,手速赛。关键是看题不要看错,这样卡时间。还有手速保持在较快的水准,有意识地训练~
A 数字方阵 > 25663765
随机化生成方阵,修改直到方阵满足条件 (重复3次,都A了)
#include
#include
#include
#include
#include
#include
#include
#include <set>
#include
另:
对称结构最容易产生相同的行/列/对角线和值
但对称结构最好创建
所以创建对称结构,在这基础上进行微调
A 数字方阵 > 25713373
1 #include
2 #include
3 #include
4 #include
5 #include
6 #include
7 #include
8 #include <set>
9 #include
B 小马过河 > 25648307
想不到好方法。做了两条直线(ax+by+c=0),求交点
#include
#include
#include
#include
#include
#include
#include
#include <set>
#include
另:直接推公式
https://blog.csdn.net/sr_19930829/article/details/19825661
C 真真假假 > 25645450
#include
#include
#include
#include
#include
#include
#include
#include <set>
#include
比赛时候不停“”,太傻,幸好数量不多
1 #include
2 #include
3 #include
4 #include
5 #include
6 #include
7 #include
8 #include <set>
9 #include
D 虚虚实实 > 25650110
看得很懵的题目,这告诫我看完题顺便再看看测试数据
其实就是求一笔画问题
#include
#include
#include
#include
#include
#include
#include
#include <set>
#include
E 是是非非 > 25653790
nim问题。好像有升级版https://blog.csdn.net/acm_baihuzi/article/details/41622825
#include
#include
#include
#include
#include
#include
#include
#include <set>
#include
F 黑黑白白 > 25653038
树上的博弈论。从叶子到根。
1 #include
2 #include
3 #include
4 #include
5 #include
6 #include
7 #include
8 #include <set>
9 #include
G 文 > 25646203
只用保存最大的状态。
选择题答卷用char输入,一一比对会快一点
1 #include
2 #include
3 #include
4 #include
5 #include
6 #include
7 #include
8 #include <set>
9 #include
H 武 > 25713562
求最短路,从s点出发的第k小距离
priority_queue里的符号老是写反……
1 #include
2 #include
3 #include
4 #include
5 #include
6 #include
7 #include
8 #include <set>
9 #include
另: 树结构,根到某个节点的路径和路径长度唯一确定
可以优化,不过像题解说的O(n)是不可能的,如所有点仅与根节点相连
H 武 > 25713622
1 #include
2 #include
3 #include
4 #include
5 #include
6 #include
7 #include
8 #include <set>
9 #include
I 艺 > 25665565
取每个节目的开始时间和 最后结束时间,时间从小到大,在某一个时间内,两个电视分别播一个特定的节目,取最大值,若最大值小于0,不取,否则取。
调了很久,最后发现sort的变量写错了(n->m),看来程序写错了也不行一昧地调试,重新看一遍代码,会发现调试难以发现的错误……
1 #include
2 #include
3 #include
4 #include
5 #include
6 #include
7 #include
8 #include <set>
9 #include
J 美 > 25656447
贪心。排序后(a[1],a[2],…,a[n]从小到大),a[1] -> a[n] th -> a[2] th -> a[n-1] th -> ……
比赛时没证明就直接写了,发现对了,感觉。。。
证明:
![](http://img.e-com-net.com/image/info8/6173c7e4d2b244ea9551999fe0c68445.jpg)
环结构,每个数Ri都重复计算了两遍,去掉绝对值,2*n次计算中,n次减,n次加。要想值最大,则大值尽量地加,小值尽量地减。
即a[1]~a[n/2]减两次;a[(n+1)/2+1]~a[n]加两次。如果n为奇数,则a[n/2+1]加一次,减一次。
a[1] -> a[n] th -> a[2] th -> a[n-1] th -> ……正好满足条件,得证。
1 #include
2 #include
3 #include
4 #include
5 #include
6 #include
7 #include
8 #include <set>
9 #include