[cerc2012][Gym100624B]20181013】的更多相关文章

题意:一个序列,如果存在一个连续子序列,满足该子序列中没有只存在一次的序列,则原序列为boring,否则non-boring 题解: 分治递归 对一个序列,如果找到了一个只出现一次的数位于a[x],则问题转化为子序列a[1]...a[x-1]和a[x+1]..a[len]这两个序列有没有boring序列,故分治. 判断a[x]是否是在这个数列中只出现一次:记录左边最近一次出现a[x]的位置l[x],右边为r[x],若数列为a[L]...a[R],则l[x]<L&&r[x]>R…
题意:用元素符号表示字符串 题解:签到题 简单dp 难点在于把元素符号都改成小写qaq #include<cstdio> #include<cstdlib> #include<cstring> #include<iostream> #include<algorithm> using namespace std; ,M=; ][]={"h","he","li","be"…
A 题意:n(n<=20)个国家,每个国家之间有一些债务关系,总体为负债的国家会破产,破产国家的债务关系全部消除.问哪些国家可能成为最后一个唯一存在的国家. 题解: 对于每一个状态,面对若干个负债国,哪个国家先破产会影响最后的结果. 考虑到n<=20,可以状压.f[s]表示状态为s(0表示未破产,1表示已破产)是否存在. 转移方程:if(!s&(1<<i) && i在s状态下已破产)  f[s+(1<<i)] | = f[s]; O(2^n *…
状压dp.... 我已开始用递归结果就 TLE 了... 不科学啊...我dp基本上都是用递归的..我只好改成递推 , 刷表法 将全部公司用二进制表示 , 压成一个数 . 0 表示破产 , 1 表示没破产 . dp( S ) 表示 S 状态是否能够达到 , 能为 1 ( true ) , 不能为 0 ( false ) . dp( S ) =  max( dp( S ^ { x } ) , ( S & x == 0 && ∑debt > 0 ) ---------------…
要快速在一段子序列中判断一个元素是否只出现一次 , 我们可以预处理出每个元素左边和右边最近的相同元素的位置 , 这样就可以 O( 1 ) 判断. 考虑一段序列 [ l , r ] , 假如我们找到了序列中唯一元素的位置 p , 那我们只需检查 [ l , p - 1 ] & [ p + 1 , r ] 是否 non-boring 即可 . 如何检查 序列 [ l , r ] 呢 ? 假如从左往右或者从右往左找 , 最坏情况下是 O( n ) , 总时间复杂度会变成 O( n² ) ; 假如我们从…
4063: [Cerc2012]Darts Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 85  Solved: 53[Submit][Status][Discuss] Description 考虑一个扔飞镖的游戏.板子由十个环组成,半径分别为20, 40, 60, 80, 100, 120, 140, 160, 180和200(单位:mm),均以原点为中心.每次投掷的得分取决于飞镖所击中的位置.如果包含飞镖的最小环(可以在圆上)的半径是20 *…
[BZOJ4061][Cerc2012]Farm and factory(最短路,构造) 题面 BZOJ 然而权限题QwQ. 题解 先求出所有点到达\(1,2\)的最短路,不妨记为\(d_{u,1},d_{u,2}\). 那么假设新点是\(x\),任意一个点\(u\). 那么可以得到几个不等式:\(d_{u,1}\le d_{u,x}+d_{x,1},d_{u,2}\le d_{u,x}+d_{x,2}\).同理还有几个类似的不等式. 而题目限制又要求\(d_{u,x}\)最小, 因此\(d_{…
2018-10-13 21:30:51  c language 二进制.八进制和十六进制: 1) 整数部分 十进制整数转换为 N 进制整数采用“除 N 取余,逆序排列”法. 十进制数字 36926 转换成八进制? 110076 2) 小数部分 十进制小数转换成 N 进制小数采用“乘 N 取整,顺序排列”法. 十进制小数 0.930908203125 转换成八进制小数? 0.7345 如果一个数字既包含了整数部分又包含了小数部分,那么将整数部分和小数部分开,分别按照上面的方法完成转换,然后再合并在…
4525: [Cerc2012]Kingdoms 题意 n个国家,两两之间可能存在欠债或者被欠债的关系,一个国家破产:其支出大于收入.问一个国家能否坚持到最后. 思路 很有意思的一道题. dp[s]表示在当前国家存在情况为s,1-存活,0-破产.那么起始为11111....然后枚举一个国家,判断是否可以破产,转移. 最后,扫一遍所有只有1的情况. 代码 #include<cstdio> #include<algorithm> #include<cstring> #inc…