摘要: 1.补码表示: ~x=-1-x 2.自然溢出:unsigned long long 自动对2^32取模,可以用来hash。 3.基本位运算操作: 左移:1<<n=2^n n<<1=2n,n<<2=4n,n<<3=8n。。。 算术右移:n>>1=n/2 ,n>>4=n/16。。。算术右移=除以2向下取 阅读全文
posted @ 2018-08-04 22:26 dprswdr 阅读(430) 评论(0) 推荐(0)
摘要: 传送门 思路: 1.状态:由于经过的点是一个集合,所以我们用dis[i][j]表示经过的点的状态为i,且当前位于点j时的最短Hamilton路径,其中i为一个二进制整数,用来存储经过的点的情况。为了方便位运算,我们的点的标号为0~n-1。 2.边界:dis[1][0]表示当前在起点0的最短Hamil 阅读全文
posted @ 2018-08-04 21:56 dprswdr 阅读(207) 评论(0) 推荐(0)
摘要: 传送门 思路:加上能够养活x个妹子,那么必定能养活<x个妹子,满足单调性,可以二分。 我们二分能够养活的最大的妹子数量。对于当前已经符合check函数的mid,ans一定在[mid,r]的区间内, 因此采用 mid=(l+r+1)>>1;if(check(mid)) l=mid;else r=mid 阅读全文
posted @ 2018-08-04 21:11 dprswdr 阅读(115) 评论(0) 推荐(0)
摘要: 传送门 思路: 对于“找出一种最优排列顺序,使答案最优”的贪心题目,我们可以用“邻项交换”的方法去找出并证明贪心策略。 例如本题,我们假设有两头奶牛,其到达牛圈时间分别为Ti,Ti+1,每分钟吃掉的花朵数分别为Di,Di+1。 有两种情况: ① 排列顺序为i i+1 则两头牛吃掉的花朵数为 res1 阅读全文
posted @ 2018-08-04 18:46 dprswdr 阅读(335) 评论(0) 推荐(0)
摘要: 传送门 思路:一个贪心策略就是“在不挤超过截至时间的奶牛的前提下,尽量挤奶量大的奶牛”。So我们将奶牛按截至日期从小到大排序,对于每个截至时间t,将所有截至时间为t的奶牛的奶量加入一个大根堆,只留下前t大的数,剩下的直接删去。由于priority_queue没有clear函数,所以我手写了一个堆。。 阅读全文
posted @ 2018-08-04 18:26 dprswdr 阅读(193) 评论(0) 推荐(0)