08 2016 档案
摘要:题意: 大模拟 题解:每次把always top标记的人关掉要把标记也去掉,聊天数用long long,最后先和有标记的人说拜拜
阅读全文
摘要:转自:優YoU http://user.qzone.qq.com/289065406/blog/1307063918 大致题意: 给出数轴上的n个区间[ai,bi],每个区间都是连续的int区间。 现在要在数轴上任意取一堆元素,构成一个元素集合V 要求每个区间[ai,bi]和元素集合V的交集至少有c
阅读全文
摘要:题意: 就是给出n个城市的坐标,一辆车从1出发,能达到所有的点,并且能范围到1.一辆车加满油能开的距离为D,在第i个城市建油站的费用为2^(i-1). 求最小花费。 题解:在第i个城市建造花费比前i-1个都建造花费都大,所以先全部假设建加油站,依次从最后一个枚举假设不建加油站能否到达 判断是否可以到
阅读全文
摘要:详见:http://blog.csdn.net/zakheav/article/details/46424251const int N = 10005; 2 const int M = 100005; 3 4 struct Edge { 5 int to, next; 6 } edge[M]; 7 int head[N]; 8 int cnt_edge; 9 10...
阅读全文
摘要:题目大意:给定n,表示字符串集合。给定k,表示进行了k次游戏,然后是n个字符串。每局开始,字符串为空串,然后两人轮流在末尾追加字符,保证新的字符串为集合中某字符串的前缀,不能操作者输,新一轮由上一句输的人先手。 思路:00 代表不能控制 01代表败,10代表胜,11代表能输能赢 转自 http://
阅读全文
摘要:题意:给定一个图,0是不能放的,然后现在有1X1和1X2方块,最后铺满该图,使得1X1使用次数在C到D之间,1X2次数随便,问有几种放法 思路:插头DP或轮廓线,多加一维DP讨论就可以 注意插头DP状态转移的是轮廓线,从左上开始处理,具体见代码注释
阅读全文
摘要:详见分析:http://blog.csdn.net/sixdaycoder/article/details/47720471#include #include #define M 310 #define inf 0x3f3f3f3f int n,nx,ny; int link[M],lx[M],ly[M],slack[M]; //lx,ly为顶标,nx,ny分别为x点集y点集的个数 ...
阅读全文
摘要:匈牙利算法本质就是一个个的匹配,对于当前的处理的对象i,假设他的匹配对象为j,但是j已经和v匹配好了,那么就让v去找找着能不能和别人匹配 v可以和别人匹配则i与j匹配,不能则i去找别人匹配 另外引入几个定义和结论: 1:最大匹配数 + 最大独立集 = n + m(n,m为二分图两边的节点数) 2:二
阅读全文
摘要:题目大意:给N个数,有M个查询,问区间[L,R]之间有多少个数与这个区间内的其他数都互质。 思路:dp显然很难搞,既然是求区间就试试每一个数最大可以对答案产生贡献的区间,即预处理出一个数在(lp,rp)内始终与其他数互质的最大区间 则lp和rp分别为左边和右边第一个与他不互质的数的位置 处理的时候素
阅读全文
摘要:别人实在讲得很清楚了,参考自 http://blog.csdn.net/ljd4305/article/details/10101535 再说一些,树状数组本质还是单点更新区间求和 更新的时候可以看这个例子 0101 -> 0110 -> 1000 结合更新函数和树状数组那个图应该很好理解,其实就是
阅读全文
摘要:题意: 有 G 种颜色的宝石,放在 B 个袋子里(每种颜色可以放多个)。 两人轮流选袋子(每个袋子只能被选 1 次),每次将选出来的袋子中的宝石放到 cooker 中,cooker 可能会起反应。 反应条件是 cooker 中出现 S 个一样颜色的宝石,而且一旦起反应,每 S 个一样颜色的宝石就会获
阅读全文
摘要:下面是精简版,参考自 http://blog.csdn.net/fsss_7/article/details/52210266
阅读全文
摘要:二进制数子集的取法,结果不会输出0,且从大到小 题意: 给定一个 N个点的图, 求它的每一个子图的最小染色数 染色方法是所有子图中相连接两点颜色不一致 其中 N≤18 题解: 先状压表示出所有的子集状态,即每个子集取那些点 然后枚举出那些子集是独立集,即没有边相连 然后dp,将每个子集的独立集取出并
阅读全文
摘要:题意:问交换两个位置能否使这些括号匹配; 复制航神代码,类似于递归思想
阅读全文
摘要:题意: 在一条无限长水平直轨道上有n个相同的球,给出每个球的初速度、起始位置、方向.给出若干询问,每次输出 t 秒时第 k 小的速度是多少.对任意球的任一时刻而言,速度与加速度同方向,且它们的乘积为定值C. 题解: 撞击对于速度没有影响,则对于相对大小也没有影响 a*v=c; dv/dt=a; v*
阅读全文
摘要:题意: 有N个盒子,每个盒子最多装一个球. 球的颜色不一定相同.现在要进行m次区间操作:每次操作 [l, r] 后可以随意将区间内的球重新分配回去.问经过上述操作后是否有可能达到给定的状态. 题解: 贪心.为每个球标记它在最终结果中的序号. 对于颜色相同的球:左边的尽量分配小的序号.对于m次区间操作
阅读全文
摘要:题目大意: 给定n个点,m个询问的无向树(1为根) 下面n个数表示每个点的权值 下面n-1行给出树 操作1:x点权值+v, x的第 i & 1 的儿子-v, 第 !(i&1) 的儿子+v 操作2:询问x点权值 思路:把树上的点用dfs序转换一下就可以用树状数组做了,不过因为更新时有两种更新同时进行所
阅读全文
摘要:题目大意:给一个数字串(不超过80位),可以在数字之间添加逗号,分成几个数,要求最后形成一个严格递增的序列,且要求最后一个数尽可能的小,如果有多个满足要求,则使第一个数尽可能大,如果还有多个,则使第二个最大,如此类推。求最后的序列。 先dp求出最后一个数最小可以是多少,然后反向dp求出在最后一个数最
阅读全文
摘要:题目大意:给定一个长度为n的序列,至多将序列分成m段,每段序列都有权值,权值为序列内任意两个数两两相乘之和。m<=n<=1000. 令权值最小。 dp[i][j]=max{dp[i][j],dp[i-1][k]+w[k+1][j]},遍历k.dp[i][j]表示将前j个分为i段,w[k+1][j]表
阅读全文
摘要:for(int i = 2; i < N; ++i) nexte[i] = (i == (i & -i)) ? nexte[i - 1] + 1 : nexte[i - 1];//nexte数组中储存的即是i的二进制最高位的位数
阅读全文
摘要:#define Matr 10 //矩阵大小,注意能小就小 struct mat//矩阵结构体,a表示内容,size大小 矩阵从1开始 { ll a[Matr][Matr],size; mat() { size=0; memset(a,0,sizeof(a)); } }; void print...
阅读全文
摘要:打表博弈也没什么好说的,其实比赛时想到了,但是错误认为两个数异或不会得到一个更大的数就没打表,,,还是太菜了,,, 附打表代码
阅读全文
摘要:题意:给出一个序列(1000长度),定义f(i,j,k,l,m) 为a[i],a[j]必取,a[k],a[l]必不取和为m的子集个数。统计任一i,j,k,l,m的和是多少(i!=j!=k!=l) dp[i][j][k][l],表示前i个组成重量j,有k个必取l个必不取的方案数,当i+1则分四种情况,
阅读全文
摘要:题意: win10系统声音调节,加声音只能是按一次按钮音量+1,减少的话,假设当前是要减少的,并且上一次也是减少。那么这次是减少上次的两倍。如果上次是加声或者不动。则从1开始减。问P到Q至少需要按钮多少次。 每一种状态可以分成三种子状态 1:上次减了x,这次减去2*x 2:rest 休息不动。则x变
阅读全文
摘要:题意:求区间[l,r]内有多少个数符合,这个数的任意的相邻k位数(digits),这k个数都两两不相等 l,r范围是1~1e18,k是2~5 思路:数位DP,因为K<=5,我们最多需要保存下来当前位的前4位就足够了。因为dp[pos][p1][p2][p3][p4]表示,现在枚举取第pos位,pos
阅读全文
摘要:题解实在是写得很清楚了,我就不多说什么了,,, 转自:優YoU http://blog.csdn.net/lyy289065406/article/details/6671105 大致题意: 在遥远的国家佛罗布尼亚,嫌犯是否有罪,须由陪审团决定。陪审团是由法官从公众中挑选的。先随机挑选n 个人作为陪
阅读全文
摘要:题意:给你一个3000以内的数s,让你把它分解成几个数的和,要求得到的这几个数最小公倍数最大 对于两个数a,b,如果不互质那么对于答案的贡献最多是a*b,假设他们最大公约数为k,那么把a,b分为a,b/k,b-b/k三个数的积肯定会大于等于a*b; 因为当b/k > 1 && b-b/k > 1时,
阅读全文