http://codeforces.com/contest/1184
A1
找一对整数,使x^x+2xy+x+1=r
变换成一个分式,保证整除
#include
#include
#include<string>
#include
#include
#include
#include
#include
#include
View Code A2
给定一个二进制串,对于整数k来说,若存在另一个二进制串x,时x与x右移k位异或的结果等于这个二进制串,k就是合法的,求合法的k的数量。
先考虑x,第一个位确定了,后面1+k,1+2k...的位也确定了,最后会回到第一位,这时需要与之前假定的第一位一致。于是这就形成了一个循环。循环长度为lcm(k,n)/k=n/gcd(k,n)。
对k,按gcd(k,n),进行归纳求解,将所有k映射到gcd(k,n),然后求出gcd(k,n)的答案,只需要遍历所有循环的位置,再查看是否合法。
#include
#include
#include<string>
#include
#include
#include
#include
#include
#include
View Code B1
舰队攻打敌军,只能攻打防御力不大于它攻击力的,敌军掉落的金币不等,问每个船能打多少钱
排序即可
#include
#include
#include<string>
#include
#include
#include
#include
#include
#include
View Code B2
敌军在一个图上攻打舰队,每个敌军只能打防御力不大于他的船,并且两者距离不大于他的燃油量。每个敌军负责打一个人,掠夺k金币。
我军可以花h金币建造假船,一定会被一个敌军攻击,且不损失金币。求损失最少的策略。
因为金币数量是固定的,容易证明要么全用假船吸引,要么一个假船都不放。
先跑多源最短路,然后匹配即可。
#include
#include
#include<string>
#include
#include
#include
#include
#include
#include
View Code C1
给若干个在长方形边上的点和一个不在边上的点,找出那个长方形
#include
#include
#include<string>
#include
#include
#include
#include
#include
#include
View Code D1
一个长度n的线段和一个特殊点,每次插入或者切掉头或尾一段,每次询问特殊点的位置。
维护即可。
#include
#include
#include<string>
#include
#include
#include
#include
#include
#include
View Code E1
给一个图,求出最小生成树,问如果第一条边可能在最小生成树里,其边权最多是多大
看看什么时候这条边对应的两个点处于同一个集合中。
#include
#include
#include<string>
#include
#include
#include
#include
#include
#include
View Code E2
与上一个问题类似,但是这次要求除了最小生成树的边之外所有边的答案
先求最小生成树,两个点之间加一条边,则形成一个环,由这条边和两者的树上最短路径的边组成,用lca求最短路径上的边的最大边权即可。
#include
#include
#include<string>
#include
#include
#include
#include
#include
#include
View Code
转载于:https://www.cnblogs.com/hyfer/p/11165349.html
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!