摘要: 不知道算不算博弈 很妙的贪心,一直在想SG函数结果... 首先从大到小排个序,然后考虑当前的人要怎么选:如果不选最后一段,那么另一人会选,这样不利于当前的人,所以每个人一定会选最后一段 设f[i]为要选i了,先手的最大差,显然是max(a[i] f[i 1],f[i 1]),就是先手只选了最后一个和 阅读全文
posted @ 2018-04-26 17:58 lokiii 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 参考:http://www.cnblogs.com/clrs97/p/5125976.html 瞎搞约数失败...滚去搜索 dfs(x,y,z) 表示当前可选第x到第m个约数,还要选y个约数,已有z的乘积,搜的时候减掉大于n的情况 阅读全文
posted @ 2018-04-26 17:34 lokiii 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 参考:https://www.cnblogs.com/spfa/p/7495438.html 为什么邻接表会TTTTTTTLE啊...只能用vector? 把点按照点权从大到小排序,把无向边变成排名靠前的点连向排名靠后的点的有向边并记录出度d[u],用map记录一下联通,这样可以避免重复计算 按排名 阅读全文
posted @ 2018-04-26 16:01 lokiii 阅读(161) 评论(0) 推荐(0) 编辑
摘要: 先打能回血的,按消耗从小到大打; 然后按回血量降序打剩下的(把消耗和回血反着看就是上一种怪,打法一样); 中间体力小于0就输出无解 cpp include include include using namespace std; const int N=100005; int n,t1,t2; lo 阅读全文
posted @ 2018-04-26 12:04 lokiii 阅读(141) 评论(0) 推荐(0) 编辑
摘要: 参考:https://blog.csdn.net/aarongzk/article/details/48883741 没想到吧.jpg 来自题解: “如果用sum[i]表示前i个杯子底球的总数,那么知道一个c[i][j],等于是知道了sum[j]和sum[i 1]的差的奇偶性。而sum[0]的奇偶性 阅读全文
posted @ 2018-04-26 11:25 lokiii 阅读(123) 评论(0) 推荐(0) 编辑
摘要: 参考:https://blog.csdn.net/clove_unique/article/details/57405845 死活不过样例看了题解才发现要用double.... $$ a_j \leq a_i+p \sqrt{abs(i j)} $$ $$ p\geq a_j+\sqrt{abs(i 阅读全文
posted @ 2018-04-26 10:59 lokiii 阅读(105) 评论(0) 推荐(0) 编辑
摘要: 首先处理处理出来哪些边能连——能把羊分成两个偶数部分的,实现是在凸包上枚举极点,极角排序,枚举凸包上点对判断两边羊的个数的奇偶即可,设可以连边为v[i][j]=1 然后设f[i][j]为从i到j个凸包上点的方案数,初始状态是相邻点f[i][i+1]=1,转移是 $$ f[i][j]=\sum_{k= 阅读全文
posted @ 2018-04-26 09:26 lokiii 阅读(237) 评论(0) 推荐(0) 编辑