AD Hoc
兜率工
XJTU 硕士研究生在读
展开
-
POJ 2234 (取子游戏)
取子游戏的关键在于游戏开始时游戏处于何种状态(平衡或者非平衡态)和第一个人能否按照取子游戏的获胜策略来进行游戏。 #include<cstdio> #include<queue> #include<cstring> #include<iostream> #include<string> #include<algorithm>...原创 2018-07-25 22:56:33 · 796 阅读 · 0 评论 -
HDU 6231 (二分+尺取)
所求的一定是a数组中的原素,这点毋庸置疑,所以在a数组中任意选则其中的一个数x,若a的所有长度不小于k的连续子序列中第k大数不小于x的子序列一共有ans个,那么x在所有第k大元素组成的数列中至少是第ans大数;(因为ans+=n-r,因为之前的x已经是第k大了,所以加上后面的元素,如果比他小,则没有影响,如果比他大,他就是第k大中的第二大,依次类推,知道加到n-r,此 时x就能保证至少是第ans...原创 2018-07-30 00:02:07 · 542 阅读 · 0 评论 -
HDU 5495 Jesus Is Here
脑力题,怪我脑子不好使,没做出来,参考的别人博客: 链接:https://blog.csdn.net/chenzhenyu123456/article/details/48579695 其实就是前后两项的距离关系,想通了还挺简单的,佩服大佬们比赛那么短时间想出来orz #include<bits/stdc++.h> using namespace std; typedef ...原创 2018-08-14 13:03:38 · 187 阅读 · 0 评论 -
HDU 5451 Best Solver
若要是直接计算(5+sqrt(24))^n当然不好计算,但可以知道的是(5+sqrt(24))^n+(5-sqrt(24))^n是整数,高中学过的方法化简开即可发现。而且5-sqrt(24)是个小数,所以(5+sqrt(24))^n+(5-sqrt(24))^n再减去1就是要求的答案。 然而,由广义斐波那契可得到:所有的F[n]=p*F[n-1]+q*F[n-2]形式都能与A*x^n+B*y^n...原创 2018-08-14 15:05:43 · 169 阅读 · 0 评论 -
HDU - 6376 度度熊剪纸条
很菜,比赛时题意理解错了。。。。。 完了后看了下高手的代码,恍然大悟 继续加油喽 --------------------------------------------------------------------------------------------- 三种情况讨论即可: 1.在前导1跟后导1中取个最大的,然后在中间取到最多的 2.前面后面都要,中间取最多 3.前面后...原创 2018-08-13 17:20:33 · 194 阅读 · 0 评论 -
HDU-6446 Tree and Permutation
计算所有的全排列的之和,那么考虑每条边对答案的贡献是多大,比如1---2---3---4这种情况。 2到3对答案的贡献就是所有经过2到3的情况,正着看那么就是1---3 2---3 1---4 2---4这四种情况,倒过来也可以。 总结一下,设一条边左边有a个点,右边有b个点,那么经过该边的情况就是a*b*2种情况。 全排列一下,将这边进行捆绑,也就是将两个点看作一个点,那么就有...原创 2018-08-27 16:26:43 · 165 阅读 · 0 评论 -
POJ 3684 (弹性碰撞)
思路与蚂蚁碰撞相似,但要处理半径的关系,其实权当都从高度为H的地方落下,半径为0,最后加上刚开始的高度差即可。 #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<cmath> using namespace std; ...原创 2018-08-29 09:18:39 · 234 阅读 · 0 评论