摘要: 然而这是单调队列的题。。为何要用线段树乱搞233333 1 #include <iostream> 2 #include <algorithm> 3 #include <cstring> 4 #include <cstdlib> 5 #include <map> 6 #include <string 阅读全文
posted @ 2017-01-01 22:02 KingSann 阅读(113) 评论(0) 推荐(0) 编辑
摘要: 线段树区间最小值。。当然RMQ才是正解。。。(听说可以写待修改莫队,不过平衡树乱搞貌似速度会更快) 1 #include <iostream> 2 #include <algorithm> 3 #include <cstring> 4 #include <cstdlib> 5 #include <m 阅读全文
posted @ 2017-01-01 21:56 KingSann 阅读(70) 评论(0) 推荐(0) 编辑
摘要: f[i][S]:i~n中选了集合S的期望 f[i][j]+=max(f[i+1][j|(1<<(k-1))]+a[k],f[i+1][j])/n (如果j可以转移到j|(1<<(k-1))) f[i][j]+=f[i+1][j]/n (其他情况) 1 #include <iostream> 2 #i 阅读全文
posted @ 2017-01-01 18:30 KingSann 阅读(68) 评论(0) 推荐(0) 编辑
摘要: f[i][j]:1~i物品中是否可以达到j f[i][j]=f[i-1][j+a[i]]||f[i-1][j-a[i]] (如果合法) 1 #include <iostream> 2 #include <algorithm> 3 #include <cstring> 4 #include <cstd 阅读全文
posted @ 2017-01-01 17:17 KingSann 阅读(90) 评论(0) 推荐(0) 编辑
摘要: 因为这组数中的众数超过一半,所以可以开一个变量记一下当前的数字以及当前数字数量(看代码),由于数组中的众数的特性,其他的数字都会被众数抵消掉,所以只剩下了众数。(口胡) 1 /* 2 #include <iostream> 3 #include <algorithm> 4 #include <cst 阅读全文
posted @ 2017-01-01 15:22 KingSann 阅读(76) 评论(0) 推荐(0) 编辑
摘要: 计算一下每个数有多少个倍数就行。。 1~n中x的倍数的个数是floor(n/x) 1 #include <iostream> 2 #include <algorithm> 3 #include <cstdio> 4 #include <cstring> 5 #include <cstdlib> 6 阅读全文
posted @ 2017-01-01 14:54 KingSann 阅读(125) 评论(0) 推荐(0) 编辑
摘要: 好神啊。。 将一堆1*2的骨牌放到这个n*n的棋盘上,可以发现如果骨牌正好放满的话先手一定会胜利的,因为先手每一次都将棋子从骨牌的一个开始处推到结束处,那么由于骨牌正好放满,也就是说推完最后一步后没有骨牌了。(如果骨牌恰巧放满,那么n就是偶数) 反之,如果不能放满骨牌,那么先手一定是将骨牌从一个单块 阅读全文
posted @ 2017-01-01 14:43 KingSann 阅读(69) 评论(0) 推荐(0) 编辑
摘要: 裸BFS。。哈希表判一下重就行。。(注意要解压状态!) 1 #include <iostream> 2 #include <algorithm> 3 #include <cstdio> 4 #include <cstring> 5 #include <cstdlib> 6 #include <map 阅读全文
posted @ 2017-01-01 13:09 KingSann 阅读(96) 评论(0) 推荐(0) 编辑
摘要: 第一眼看到这题完全没思路。。搜了一下题解发现就是解一个方程组。。。Orz(然而我也不会啊233) 所以说就学了一下高斯消元。。(据说高斯-约当消元法在OI中更常用) 设球心为X=[x1,x2,x3,x4,...,xn],每一个点的坐标为Ai=[ai1,ai2,ai3,...,ain] 那么根据空间距 阅读全文
posted @ 2017-01-01 10:15 KingSann 阅读(110) 评论(0) 推荐(0) 编辑