摘要: 题意:给出n(nn且为质树)的值题解:这题貌似是很裸的polya 但是发现置换有n!个 根本枚举不出来 于是我们采用算每个点置换对应的边轮换相加得到答案 注意:这里的点置换并不是指原图中的点 而是某条边的两个顶点假设现在知道一个点置换P=(1)^c1(2)^c2(3)^c3... P对应的边轮换有两... 阅读全文
posted @ 2014-04-26 17:06 g_word 阅读(386) 评论(0) 推荐(0) 编辑
摘要: 题意:给出a、b 表示按先行后列的方式储存矩阵 现在要将其转置 可以交换两个点的位置 求最小操作次数题解:储存可以将其视为拉成一条链 设a=5、b=2 则在链上坐标用2^***(a,b)表示为(xxxxxyy) 转置后为(yyxxxxx)这时将其视为另一个点的坐标 继续转置为(xxyyxxx)...... 阅读全文
posted @ 2014-04-26 17:04 g_word 阅读(423) 评论(0) 推荐(0) 编辑
摘要: 题意:给出一张n节点、m条代权无向边的无向联通图 和q个任务1:询问一条x到y的路径 并使路径上最大权值最小 要求输出路径上最大权值2:宣布x到y的路径报废题目保证该图永远联通题解:这是道凶残的题目 用了我一整天的时间虽然AK大神表示这是模板题看到最大权值最小 可能会想到二分(其实我是写题解的时候才... 阅读全文
posted @ 2014-04-26 16:59 g_word 阅读(217) 评论(0) 推荐(0) 编辑
摘要: 题意:给出n个节点 及其父亲 和m个指令1:表示求节点i到根节点(n+1)的距离2:表示将节点i的父亲更换为j题解:动态树link、cut、access模板题 貌似没什么难度- -代码: 1 #include 2 struct info{ 3 int fat,root,lc,r... 阅读全文
posted @ 2014-04-26 16:56 g_word 阅读(184) 评论(0) 推荐(0) 编辑
摘要: 打了快一星期的qtree终于打完了- - (其实还有两题改不出来弃疗了QAQ)orz神AK一星期前就虐完QTREE避免忘记还是简单写下题解吧0 0QTREE1题意:给出一颗带边权树一个操作:修改边权还有一个询问:求x到y路径上边权最大值树链剖分模版题- -blabla代码: 1 #include ... 阅读全文
posted @ 2014-04-26 00:20 g_word 阅读(743) 评论(3) 推荐(0) 编辑
摘要: 题意:求确定n种货币面额x1..xn满足 x1=1 且xi为xj的整数倍(i>j)给定n个物品价格ai 求使用上面货币最少需要硬币数(不能找零)题解:动态规划听说网上的题解都是搜索的做法- - 只有一个人有说能用dp 但是没说怎么做我想了一晚上 终于想出了dp的做法orzf[i]表示最大货币面额为i 时 所需最少硬币数转移方程:f[i]=f[j]-Σ(a[k]/i)*(i/j-1) (j为i的因数,/为整除)其实这个方程也不难意思就是求每个物品能用几次i 硬币支付 而没有i 硬币要得到i 的价值就最少需要i/j个硬币所以每用一次i 硬币就能减少使用 i/j-1个硬币优化:这样做对每个i 阅读全文
posted @ 2014-03-26 21:15 g_word 阅读(481) 评论(0) 推荐(0) 编辑
摘要: 题意:给你一颗树 1为根节点 一开始所有叶子被占领 被占领的节点每个单位时间会生产一个士兵向根节点走每个点i如果被di个士兵路过(士兵路过一个点不会停住 会继续往根节点走)就会被占领问所有点都被占领要多久题解:40分算法: 对与一个点i可以二分该点的结束时间 然后枚举计算该点子树对该点的贡献 时间复杂度O(n^2log(n))正解: 对每个节点建平衡树 按被占领顺序维护所有子树的节点 这样计算一个点的结束时间就能在平衡树上二分 时间复杂度O(nlog(n)) 阅读全文
posted @ 2014-03-21 22:17 g_word 阅读(643) 评论(0) 推荐(0) 编辑
摘要: 题意:给出一张n个点的无向图 i连向i-1和i-2 边权为wij 有两个点权ai和bi ai为0或1在给m个操作1.将ai异或12.将区间x到y的点都填上一个数ci 使得Σ(bi*(ai^ci))+Σ((ci^cj)*wij) 输出最小值题解:30分算法: 动规 f[i][j]表示前i个点后两个点的ci状态为j的最小值 维护一次n^2但每次修改就要整个dp重做 特别浪费 时间复杂度O(nm)正解: 用线段树维护f数组 线段树一段维护前两点和后两点状态为i时的最小值 这样每次修改log(n) 时间复杂度O(mlog(n)) 阅读全文
posted @ 2014-03-21 21:08 g_word 阅读(234) 评论(0) 推荐(0) 编辑
摘要: 题意:给你一颗带边权树 及每个点的颜色 和m个操作 每次操作更改一个的颜色 求每次操作后同色最近点对的距离题解:点分治 对于每个重心维护x个堆 x为这个重心管辖范围内的不同颜色数维护该重心管辖范围内这个颜色的点到该重心的距离的小根堆则某颜色经过这个重心的最小距离就是堆的前两个点的和答案就是所有值的最小值修改:对一个点修改只会影响管辖范围包括它的log(n)个重心每个重心维护堆log(n) 所以时间复杂度为O(nlog^2(n))修改后可能影响答案 所以总的维护一个小根堆记答案即可(官方解题报告还多建了好几个堆和一个线段树- - 简直麻烦 理论上我这样做是对的 但是我没打orz) 阅读全文
posted @ 2014-03-20 23:05 g_word 阅读(223) 评论(0) 推荐(0) 编辑
摘要: 刷了差不多两星期的博弈啊(其实还用了很多时间准备坑爹的会考- -)虽然不是特别熟悉 但是比之前看到博弈就orz好多了把副队给的题目刷完之后AK表示还不过瘾 又去把wikioi&vijos的博弈题目都刷了一遍里面好几道重复的题目我就没打了 看了下保存的文件 刷了19题我看的论文:《从“k倍动态减法游戏”出发探究一类组合游戏问题》《组合游戏略述——浅谈SG游戏的若干拓展及变形》还有这篇博客不错 讲了3种博弈问题 我威佐夫就是在这看的:http://blog.csdn.net/liwen_7/article/details/7943210Nim游戏:给出N堆石子的个数 每个人可以从一堆中取若 阅读全文
posted @ 2014-01-10 16:17 g_word 阅读(219) 评论(0) 推荐(0) 编辑