摘要:
题意:给出n个数ai 和m个操作 操作有两种C x y:将ax的值改为yQ x:求几种方案使得 b1^b2^...^bn=x(ai>=bi)题解:先推荐一个不错的题解 题目差不多 我之前就是看着题解做的http://hi.baidu.com/billdu/item/c749952ab2ab50c2ef10f137首先我们先不考虑修改 即给你n个数ai 求几种方案使得异或和为x为了方便起见 我们将原题的条件修改为0≤bij:nei=i+1,nej=l,nez=xo[i][l],free=j-1 f[nei][nej][nek]+=f[i][j][k] 2 #include 3 #inclu 阅读全文
摘要:
发现好久没来写总结了做了一星期+的网络流 还讲了两节课 是时候写个总结了分类:最大流:用sap做 如果是平面图 可以对偶转换再求最短路 最小割:求法和最大流一样 方案可以用bfs求 费用流:用spfa做 如果时间过不了可以用zkw费用流(虽然我还不会- -) 上下界: 建立虚拟源、汇 求虚拟源汇最大流 若满流则有解 最大流: 先按虚拟源汇跑最大流 再按原本源汇跑最大流 最小流: 先不连原本汇到源的无穷大边按虚拟源汇跑最大流 再连原本汇到源的边 再跑一次最大流 费用最大\最小流: 把上下界最大\最小流的sap改成spfa即可应用: 减少点的个数: 看《网络流建模汇总》提到 如果想不出比... 阅读全文
摘要:
题意:求目标串中每个模式串出现几次目标串长度<=2000000 模式串<=1000个 模式串长度<=50题解:这不就是AC自动机的模板题吗!求fail树中模式串的子树中有几个是目标串的节点就完了- -但是 这样做不是太没意思了 (← ←...)昨天晚上听说后缀数组好像可以完美替代AC自动机(事实上是不行的)于是就拿出了这道题 思考如何用后缀数组解决其实一想还是挺简单的先把这些串接起来 求个sa和hi记第i个模式串的的位置是sp[i]显然包含模式串i的后缀在sa中肯定跟sp[i]相邻我们只要往两个方向枚举求几个是目标串的即可Q1:这时时间复杂度为O(模式串个数*串总长度)=O( 阅读全文
摘要:
题意:给定一个字符串 求重复次数最多的连续重复子串 并输出字典序最小方案题解:枚举子串长度L 显然如果重复次数>1 那么答案串肯定包含s[1],s[1+L],s[1+L*2],...中的两个枚举被答案包含位置 1+L*i将1+L*i和1+L*(i+1) 向前、向后匹配 记匹配距离和为k 则重复次数为k/L这样我们就能知道最多重复次数ans是多少但是这题还要求字典序最小方案求方案需要再进行一次枚举 方法同上当重复次数和答案相等时 更新方案但是我们知道 包含1+L*i重复次数为k/L 的方案可能有L种 这样总时间就可能达到O(n^2)因为这L种方案的下标是连续的 并且他们的长度相等我们可以用 阅读全文
摘要:
今天睡了14个小时啊 把一星期的觉都补回来了 要不是被叫醒了 我肯定还在睡觉- -其实现在还想睡。。。 集训真是伤身啊 感觉再睡就要睡成sb了鉴于昨天被完虐(真·完虐 怒垫底) 来写篇总结得分:210(具体怎么分配不记得了 反正只有最后一题满分)应得分:400!!!!!(水的1B!!!)考试过程:由于这场考试真的特别水 考试过程几乎没什么亮点- -基本上就是:wow 好水 轻松愉悦的拓扑 加一些字符串处理wow 好水 轻松愉悦的枚举 加一些字符串处理wow 好水 轻松愉悦的模拟 加一些数学判断wow 好水 轻松愉悦的动规 加一些单调队列结果也很简单 wow 好神奇 轻松愉悦的垫底论如 阅读全文
摘要:
难得AK一次啊 在评测的时候还被数据坑了→→第四题的数据竟然出乱码得分:400!!考试过程:第一题 求几个矩阵...好像很简单? orz陈崴大神一眼就A了 我拙计地想了很久 一直在考虑枚举两点是相邻点的做法 竟然没想到枚举两点做对角线 最后还是想到了O(n^2)的方法 但是浪费了很多时间第二题 求<=n 的最大反素数 数学题? 找规律? 列了一串反素数还是没发现什么规律 九点半了 只能想到分块打表 但是要打40000+的表 好像不能提交啊 再想就要挂了啊 不然等等打个表再找规律吧 为什么又是爆零节奏 果断看第三题第三题 列了一串字符串 好像很有规律啊 递归处理之第四题 单词接龙 刚开始把 阅读全文
摘要:
orz又被AK大神虐爆了得分:60+100+100=260应得分:300→→考试过程:第一题又是坑爹的数学题orz 思路乱七八糟地想了快一小时 只推出了n<=3的做法只有40分- - 还是先看别的题目等等再慢慢想吧 不然要爆0了第二题 一眼就看到了期望0 0 顿时吓尿 又是3题数学?好吧 - - 第三题看上去是图论其实经过昨天的总结 貌似也不是很怕期望了 稍微一想好像很简单- - 求出每条边对答案的贡献就完了 业界良心啊有信心了 再看第三题好像很简单- - 连骗分的想法都没冒出来过 果断spfa 再求割点papapa...十点半 打完了~再来想第一题- - 突然发现草稿纸不够写了 算了开 阅读全文
摘要:
AK大神又AK了!!! orzorzorz题意:给出一个字符串由'x'、'o'、'?''?'有一半的几率为'x' 一半几率为'o'得分为所有连续的'o'的个数的平方和如ooxooo 得分为2*2+3*3=13求期望得分题解:又是一道期望题! orzorzAK大神只写了20行的程序 我写了80多行这里讲下AK大神的神做法吧 我的‘做法太麻烦了- -f[i]表示到i点的期望得分T[i]表示是一个'x'到i点的期望长度 这样表示就能无视前面的'?'了!相当于 阅读全文
摘要:
题解:首先我们要知道一个性质:把长度为n的序列变成目标序列最多需要n个操作证明1:我们可以将原序列上每位上的数字向目标序列相同位置的数字连一条有向边如:原序列: 1 2 3目标序列:3 1 2则 1指向3、2指向1、3指向2显然这样连完后 构成的图为若干个环我们只要将非自环(原序列和目标序列上的数一样)的环拿出来做操作即可这样显然我们需要花费 n-原序列和目标序列相同的个数 个操作所以我们需要构造目标序列使得原序列和目标序列相同的个数最多因为每个人左右是谁都已确定 所以我们对目标序列只能做翻转、平移先不考虑翻转我们需要再知道一个性质:假设差值为 (原序列-目标序列+n)%n如:原序列: 1 2 阅读全文
摘要:
题解:首先我们要知道一个性质:如果有多条直径 这个核不论在哪条直径上 答案都是一样的这样我们就可以随便找一条直径 在这条直径上枚举核的位置并且dfs预处理maxlon[i] (i在直径上) 表示到i的路径不经过直径的 离i最远的点到i的距离这时核的偏心距就是max(maxlon[i],核的端点到直径的端点的长度) (i为核上的点)这样就能O(n)求解代码: 1 #include 2 const int N=301,M=1001; 3 struct inli{ 4 int next,data,lon; 5 inli(const int a=0,const int b=0,con... 阅读全文