上一页 1 ··· 28 29 30 31 32 33 34 35 36 ··· 48 下一页
  2012年8月15日
摘要: http://poj.org/problem?id=3207一个圆上有n个点 m条连线(一个点最多只能连一条)每条线可以走圆外 或 圆内 2-SAT问题 把每条边转化为两条即为A 和 A‘ 他们只能出现一个 然后把相交的直线视为 相斥 这样就转化成简单的2-SAT问题了代码及其注释:#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<string>#include<map>#include<queue>#i 阅读全文
posted @ 2012-08-15 10:29 夜-> 阅读(159) 评论(0) 推荐(0) 编辑
  2012年8月14日
摘要: http://poj.org/problem?id=1679问最小生成树是否唯一 其实就是问次小生成树是否等于最小生成树思路:1 Kruskal 求最小生成树MIN 记录哪些边用了 哪些没有用 并建树2 dfs 从每一点开始 求最小生成树上任意两点间的最长边3 枚举没用过的边加入的情况 取(MIN+此边权-树中此两点间最长边权) 最小的那一个就是次小生成树代码及其注释:#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<string&g 阅读全文
posted @ 2012-08-14 10:37 夜-> 阅读(124) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=3164比着别人的代码写的 有些地方还是不理解 但是不能老在这上面耽误 先放一下 以后遇到再慢慢研究#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<string>#include<map>#include<queue>#include<cmath>#define LL long longusing namespace std;const i 阅读全文
posted @ 2012-08-14 09:33 夜-> 阅读(140) 评论(0) 推荐(0) 编辑
  2012年8月11日
摘要: http://poj.org/problem?id=2513和离散数学有关 欧拉回路问题同一颜色的标记为同一点 同一stick 的两端为相连状态数学什么的 最不擅长了 看了别人的解析两个限制条件1 图为联通 可用并查集判断2 度 (出度+入度)数为基数的点为0 或者为 2 输入时相加不满足上述两个条件中的任何一个 都Impossible存颜色和查询要用字典树 用map超时代码及其注释:#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include< 阅读全文
posted @ 2012-08-11 17:57 夜-> 阅读(112) 评论(0) 推荐(0) 编辑
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=4358map 版本 比赛的时候也用map 写了 不过没有加优化 所以超时了调试了一上午 下午自己出数据测了一下才知道那里出错了 汗大体思路:用map<int , int > 保存子树某个数出现的次数 然后从叶子节点向上更新合并 合并的时候需要 size小的向size大的上面合并 这样省时 这是由map 的构造决定的用c++ 提交要 手动开栈 否则会栈溢出 用G++ 提交可以避免但花费时间要长一些自测数据 对我来说很重要的一组数据 就是这里错了一上午16 11 2 3 4 5 61 21 33 43 阅读全文
posted @ 2012-08-11 16:03 夜-> 阅读(305) 评论(0) 推荐(0) 编辑
  2012年8月10日
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=4357推理题 要想在比赛中准确推出来 还真难 看了解析才懂得以下转自出题人解析:当字符串长度为2时:直接模拟即可(最多26次)。当字符串长度大于2时:1. 定义字符串的奇偶性为该字符串所有字符之和的奇偶性。2. 因为每次变化操作字符串的字符和共增加了2,所以当字符串的奇偶性不同时答案一定为N O。3. 当字符串的奇偶性相同时可证明答案一定为Y ES,证明如下:对于任意3个位置的字符(x1 , x2 , x3 ),可进行如下变化:(x1 , x2 , x3 ) → (x1 , x3 + 1, x2 + 1) → 阅读全文
posted @ 2012-08-10 19:52 夜-> 阅读(252) 评论(0) 推荐(0) 编辑
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=4351线段树 每个节点保存前缀 后缀 和 剩余情况 中(k)(0<=k<=9) 是否出现除了叶子节点外 其它节点要用左右孩子 来维护求答案时类似 维护的过程中有重复的计算 需要用打表和位运算来优化 否则超时注意0的情况代码及其注释:#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<map>#include<stack># 阅读全文
posted @ 2012-08-10 19:04 夜-> 阅读(532) 评论(6) 推荐(0) 编辑
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=4359上不起呀 错在了细节上导致比赛时没做出了呀 题不并不难左子树的和小于右子树的和 由于都是2的幂 所以只要且必须右子树上有剩下 数中最大的那个就可以了(当然左/右为空的特殊)查询时注意 根节点的选取是任意的 所以有假如说有n个节点 那根节点就有n种选法 还有根节点选出后 如果左右都有节点那么剩余最大节点一定在右面所以情况1 左/右为空2 左右深度同时为D-13 只有左/右深度为D-1要注意时刻取模这题会用到组合中的从几个点中选几个点 的情况数量 由于360太大 所以轻松超long long所以用函... 阅读全文
posted @ 2012-08-10 08:57 夜-> 阅读(459) 评论(2) 推荐(0) 编辑
  2012年8月8日
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=4340树型dp 理解起来并不难但是状态有点多 比赛的时候没敢写解题上好像是用的三维数组 有两个维大小是2 的自己干脆写了6个一维数组 然后6个dp函数相互调用 虽然代码有点长但是理解方便 思路也比较清晰对予一个子树的根节点 有6中方法1 A从这里进攻2 B从这里进攻3 A攻击这里时间花一半 因为上面的相邻城市A 已经提前攻破4 B-------------------------------------5 A攻击这里花一半时间 因为下面的某个相邻城市已经被A提前攻破6 B------------------- 阅读全文
posted @ 2012-08-08 17:21 夜-> 阅读(235) 评论(0) 推荐(0) 编辑
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=4342当出现和long long相关的操作时 一定要注意定义的int 变量在相加或相乘时是否会越界#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#include<map>#include<cmath>#define LL long longusing namespace std;const int N=100005;LL asum[N];LL n 阅读全文
posted @ 2012-08-08 11:20 夜-> 阅读(228) 评论(0) 推荐(0) 编辑
上一页 1 ··· 28 29 30 31 32 33 34 35 36 ··· 48 下一页