- 博客(4)
- 收藏
- 关注
原创 BZOJ1058 [ZJOI2007]报表统计 STL
给定一个数列 需要实现三种操作: ①在某个数后面加入一个数,如果曾经加入过则加在之前加的数之后 ②查询所有相邻两个数的差的最小值 ③查询全局差的最小值 用一个set和一个map维护相邻两数的差值 每次插入就删除原来的差值,再插入新的差值 因为全局差值只降不增 所以再开一个set存出现过的数,每次二分查找后更新差值再插入 因为BZOJ评测不分点所以卡过了 #include #inc
2018-01-09 23:02:44 288
原创 BZOJ3687 简单题 dp+bitset
给出n个数,求所有子集和的异或和。n 正常情况下就是一个01背包,但是范围过大会TLE 于是用bitset优化一下这个bool dp bitset的第i位表示和为i出现次数的奇偶性 这个东西可以像位运算一样操作,比较方便但是好像用的不多。。 #include #define LL long long #define clr(x,i) memset(x,i,sizeof(x)) using
2018-01-09 22:52:44 335
原创 BZOJ1566 [NOI2009]管道取珠 dp
有两个栈,每个栈从底向上有一些颜色为A或B的球,现将这些球全部取出,假设能得到kk个不同的颜色序列,得到每个序列的方案数为aia_i. 求∑ki=1a2i\sum_{i=1}^ka_i^2. 这里需要巧妙转化 a2ia_i^2可以看做两个人每人取一次,取得的序列相同的方案数。 那么设f[i][j][k]f[i][j][k]为第一个人在上面取ii个,下面取jj个,第二个人在上面取kk个,下面取
2018-01-03 21:11:11 524
原创 BZOJ3671 NOI2014随机数生成器 贪心+暴力
14年NOI的题 通过一系列操作生成了n*n个随机数,将这些数按顺序填入一个n*n的方格,求从左上角走到右下角,能得到的字典序最小的路径。 前面直接模拟 求路径序列的时候,考虑贪心取当前能走到的最小的数一定是最优的 于是直接从1~n*n判断每个数能不能取 能则输出并删除这个数的左下角和右上角所有格子 256M只能开2个5000*5000的int和一个boolean 所以记录每个数位置
2018-01-03 20:31:26 422
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人