摘要: 题目: 分析: 首先理解题意:zyg要和每一个人都打比赛,且只有输和赢两种情况,也就是说没打赢的人最后得分要++。 我们希望zyg打赢的人尽量地少,且rp值小。 先对比分大小排序,估计一下对应排名的最小分数sc,再按rp从小到大排序,然后分情况贪心: 1.使其最终得分为sc+2: 只需要打赢前sc+ 阅读全文
posted @ 2019-10-04 22:03 rua-rua-rua 阅读(245) 评论(0) 推荐(0) 编辑
摘要: 题目: 分析: 由数据范围可知:前五个点是Floyd,后五个点是一颗树,两两点之间的路径是唯一的,只需要求lca即可。 Floyd注意实现细节: 1.初始化时要把dis[i][i]赋成0 2.只有1个dis数组 倍增注意: 统计答案的时候要先统计在跳fa!! #include<bits/stdc++ 阅读全文
posted @ 2019-10-04 21:25 rua-rua-rua 阅读(195) 评论(0) 推荐(0) 编辑
摘要: 题目: 分析:(终于在yyr大佬的援助下弄懂了这道题。。。) 首先lcm>n的限制太少,不好直接处理,转换成求补集,也就是lcm<=n,最后用n^n-ans即可。 考虑怎么求lcm<=n: #include<bits/stdc++.h> using namespace std; #define ll 阅读全文
posted @ 2019-10-04 21:10 rua-rua-rua 阅读(286) 评论(0) 推荐(0) 编辑
摘要: 题目: 分析: 因为原序列是一个环,所以要断环为链,将序列复制一份放在后面。 显然将R移动到一块的同时,B也会在一块,所以只需要求R移动到一起的贡献即可。 枚举一个分界点,让这个点左边所有的R都向左靠,右边所有的R都向右靠。这时候一定是满足题意的。 但会发现,同一个分界点,随着断环的位置改变,统计出 阅读全文
posted @ 2019-10-04 17:29 rua-rua-rua 阅读(216) 评论(0) 推荐(0) 编辑