自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

嗯。

嗯。

  • 博客(472)
  • 资源 (2)
  • 收藏
  • 关注

原创 POJ 1284 Primitive Roots 原根

题目来源:POJ 1284 Primitive Roots#include const int maxn = 70000;int phi[maxn];void phi_table(int n){ for(int i = 2; i <= n; i++) phi[i] = 0; phi[1] = 1; for(int i = 2; i <= n; i++) if(!phi[i

2014-08-17 12:29:34 863

转载 拓扑排序题集

HDU】1285确定比赛名次2094产生冠军2647Reward3342Legal or Not1811Rank of Tetris  拓扑+并查集3231 Box Relations 三维拓扑=================================================================【POJ】1094 Sortin

2014-08-16 21:34:16 790

原创 URAL 1684. Jack's Last Word KMP

题目来源:URAL 1684. Jack's Last Word题意:输入a b 把b分成若干段 每一段都是a的前缀思路:b为主串 然后用a匹配b 记录到b的i位置最大匹配的长度 然后分割 分割的时候要从后往前如果a = abac b = abab 那么如果从前往后 首先覆盖了aba 然后b就不能覆盖了 从后往前就可以了 首先覆盖ab 下一次还是ab因为已经记录了到i位置的最大匹配

2014-08-12 19:08:01 1024

转载 ACM中国国家集训队论文集目录(1999-2009)

国家集训队1999论文集陈宏:《数据结构的选择与算法效率——从IOI98试题PICTURE谈起》来煜坤:《把握本质,灵活运用——动态规划的深入探讨》齐鑫:《搜索方法中的剪枝优化》邵铮:《数学模型的建立、比较和应用》石润婷:《隐蔽化、多维化、开放化——论当今信息学竞赛中数学建模的灵活性》杨帆:《准确性、全面性、美观性——测试数据设计中的三要素》周咏基:《论随机化算法的

2014-08-11 19:25:13 1062

原创 HDU 1527 取石子游戏 威佐夫博弈

题目来源:HDU 1527 取石子游戏题意:中文思路:威佐夫博弈 必败态为 (a,b ) ai + i = bi     ai = i*(1+sqrt(5.0)+1)/2   这题就求出i然后带人i和i+1判断是否成立以下转自网上某总结有公式ak =[k(1+√5)/2],bk= ak + k  (k=0,1,2,…,n 方括号表示取整函数) 其中出现了黄金分割数(1+√5)/2

2014-08-10 19:07:41 986

转载 区间DP题集(个别未完成)

1、Zoj 3537 Cake    2、Light oj 1422 Halloween Costumes    很基础的区间DP,是不老传说那题的减弱版。    状态转移方程:dp[i][j] = dp[i][j-1] (arr[i] == arr[j])                            dp[i][j] = min(dp[i][

2014-08-08 09:15:31 886

原创 Light OJ 1356 Prime Independence 最大独立集+素数筛选

题目来源:Light OJ 1356 Prime Independence题意:给你n个数 选出最多的数构成一个集合使得任何2个数不是另外一个数的质数倍 x!=k*y 思路:矛盾的2个数连边 并且所有数分成质因子数为奇数和偶数两部分 以质因子奇偶不同构建二分图 同奇 同偶的数一定不是另外一个数的质数倍判断矛盾 首先对每个数因子分解 例如x 有a1个p1质因子 a2个p2质因子...an

2014-08-06 16:52:43 1646

原创 算法竞赛入门经典 Dynamic Programming

UVA 116简单递推 输出字典序最小解 从后往前推

2014-08-04 20:32:09 1144

原创 POJ 3904 Sky Code 容斥原理

题目来源:POJ 3904 Sky Code题意:选出最大公约数为1的四元组的方案思路:容斥原理 总的方案C(n,4)减去t(1)+t(2)-t(3)+...+(-)^kt(k)t(i)表示四元组公因子的个数为i的方案数#include #include #include using namespace std;const int maxn = 10010;typedef

2014-08-03 16:10:40 1130

原创 POJ 2356 Find a multiple 鸽巢原理

题目来源:POJ 2356 Find a multiple题意:n个数 选出任意个数 使得这些数的和是n的倍数思路:肯定有解 并且解是连续的一段数 证明:假设有m个数 a1,a2,a3...am    s1 s2 s3...sm为前缀和 s1 = a1 s2 = a1+a2 s3 = a1+a2+a3... sm = a1+a2+a3+...+am1.如果某个前缀和si%m =

2014-08-02 18:33:30 949

原创 编程之美 2.1 求二进制数中1的个数

假设有数n以前用除二取余法 复杂度logn 不多说有一个logv的方法 v为1的个数 复杂度比logn小 int Count(int x){ int ans = 0; while(x) { x &= (x-1); ans++; } return ans;}这里用到了位运算  x&(x-1)每次去掉一个1 举个例子  100010001000&(10

2014-07-31 18:31:54 983

原创 POJ 3228 Gold Transportation 并查集

题目来源:POJ 3228 Gold Transportation题意:有一些金矿要运走存储 求运送的最小最长边思路:并查集 按边长从小到大排序 如果满足每个连通分量金矿的和小于等于存储的容量 那么就break输出#include #include #include using namespace std;const int maxn = 210;int f[maxn], r

2014-07-27 09:59:32 1034

原创 POJ 1984 Navigation Nightmare 二维带权并查集

题目来源:POJ 1984 Navigation Nightmare题意:给你一颗树 k次询问 求2点之间的曼哈顿距离 并且要在只有开始k条边的情况下思路:按照方向 我是以左上角为根 左上角为原点 dx[i]为i点距离根的x坐标 dy[]是y坐标 这两个可以通过路径压缩求出 只不过是二维而已#include #include #include using namespace st

2014-07-26 16:08:38 1220

原创 HDU 3613 Best Reward 正反两次扩展KMP

题目来源:HDU 3613 Best Reward题意:每个字母对应一个权值 将给你的字符串分成两部分 如果一部分是回文 这部分的值就是每个字母的权值之和 求一种分法使得2部分的和最大思路:考虑扩展KMP 输出a串 得到a的反串b 求出f[0]和f[1] 和 extend[0]和extend[1] 正反求2次枚举位置i 分成2部分0到i-1 和i到n-1 因为分成的2部分必须组成原字符

2014-07-24 14:00:04 966

原创 HDU 4333 Revolving Digits 扩展KMP

题目来源:HDU 4333 Revolving Digits题意:求一个数字循环移动后有多少个不同的小于 等于 大于的数字思路:扩展KMP求出S[i..j]等于S[0..j-i]的最长前缀 判断 next[i] 大于等于n就是相同 小于n判断S[next[i]]和S[next[i]+i]的大小next数组的含义就是S字符串以i开始的和S本身(以0开始)的最长公共前缀 把题目输入的复制一

2014-07-24 10:13:57 839

原创 HDU 4513 吉哥系列故事——完美队形II manacher求最长回文

题目来源:吉哥系列故事——完美队形II题意:中文思路:在manacher算法向两边扩展的时候加判断 保证非严格递减就行了#include #include #include using namespace std;const int maxn = 100110;int a[maxn<<1];int b[maxn<<1];int dp[maxn<<1];int manac

2014-07-23 13:04:04 983

原创 POJ 1451 T9 字典树+优先队列

题目来源:POJ 1451 T9题意:给你一些单词 和优先值 然后当你按下数字的时候首先会出现哪个单词 就是我们平时手机的按键思路:建一颗字典树 因为按一个数字对应多个字母 那么就有多种情况 我们要输出权值最大的一个 我用了优先队列 这里每个前缀的优先值是所有单词优先值的和例如abc 5 abd 6 acd 7 那么a这个前缀的优先值是18 ab的优先值是11#include #

2014-07-22 16:58:47 1112

原创 POJ 2185 Milking Grid KMP循环节周期

题目来源:POJ 2185 Milking Grid题意:至少要多少大的子矩阵 可以覆盖全图 例如样例 可以用一个AB 组成一个ABABABABABAB 可以多出来 思路:每一行求出周期 总共n个 求这n个周期的最小公倍数 如果大于m 取m            每一列求出周期 总共m个求这个m个周期的最小公倍数 如果大于n取n答案就是2个最小公倍数的积#inc

2014-07-21 17:04:25 1060

原创 HDU 3047 Zjnu Stadium 带权并查集

题目来源:HDU 3047 Zjnu Stadium题意:给你一些人 然后每次输入a b c 表示b在距离a的右边c处 求有多少个矛盾的情况 思路:用sum[a] 代表a点距离根的距离 每次合并时如果根一样 判断sum数组是否符合情况 根不一样 合并两棵树 这里就是带权并查集的精髓sum[y] = sum[a]-sum[b]+x 这里y的没有合并前b的根 #include #in

2014-07-18 13:44:24 1079

原创 HDU 2473 Junk-Mail Filter 删点并查集

题目来源:HDU 2473 Junk-Mail Filter题意:2中操作 M x, y 将x,y 合并到一个集合 S x 将x从所在的集合去掉 自己成为一个集合 最后求有多少个集合思路:删点不好做 可以如果0 1 2在一个集合 可以定义个数组映射 就是每个点所对应实际的点 开始是a[0] = 0 a[1] = 1 a[2] = 2 说明都是自己现在要去掉2 可以定义一个新的点 原来的

2014-07-17 21:06:10 1033

原创 POJ 2763 Housewife Wind LCA转RMQ+时间戳+线段树成段更新

题目来源:POJ 2763 Housewife Wind题意:给你一棵树 2种操作0 x 求当前点到x的最短路 然后当前的位置为x; 1 i x 将第i条边的权值置为x思路:树上两点u, v距离为d[u]+d[v]-2*d[LCA(u,v)] 现在d数组是变化的 对应每一条边的变化 他修改的是一个区间 用时间戳处理每个点管辖的区域 然后用线段树修改 线段树的叶子节点村的是根到每一个点的距离

2014-07-15 23:03:39 1264

原创 Light OJ 1411 Rip Van Winkle`s Code 线段树成段更新

题目来源:Light OJ 1411 Rip Van Winkle`s Code题意:3中操作 1种查询 求区间和 其中每次可以把一段区间从左到右加上1,2,3,。。。或者从右到左加上。。。3,2,1 或者把某个区间的数都置为v思路:我是加了6个域 add是这段区间每个数都要加上add  add是这么来的 对与123456。。。这个等差数列 可能要分为2个区间 那么我就分成123和12

2014-07-13 17:18:39 1178

原创 Light OJ 1406 Assassin`s Creed 状态压缩DP+强连通缩点+最小路径覆盖

题目来源:Light OJ 1406 Assassin`s Creed题意:有向图 派出最少的人经过所有的城市 并且每个人不能走别人走过的地方思路:最少的的人可以走完全图 明显是最小路径覆盖问题 这里可能有环 所以要缩点 但是看样例又发现 一个强连通分量可能要拆分 n最大才15 所以就状态压缩 将全图分成一个个子状态 每个子状态缩点 求最小路径覆盖 这样就解决了一个强连通分量拆分的问题

2014-07-12 11:36:25 1525

原创 POJ 1986 Distance Queries LCA树上两点的距离

题目来源:POJ 1986 Distance Queries题意:给你一颗树 q次询问 每次询问你两点之间的距离思路:对于2点 u v dis(u,v) = dis(root,u) + dis(root,v) - 2*dis(roor,LCA(u,v)) 求最近公共祖先和dis数组#include #include #include using namespace std;co

2014-07-10 09:41:13 1413

原创 最近公共祖先模版

LCA tarjan 的离线算法#include #include #include using namespace std;const int maxn = 40010;int first[maxn], head[maxn], cnt, sum;struct edge{ int u, v, w, next;}e[maxn*2], qe[maxn], Q[maxn];int

2014-07-08 15:21:31 962

原创 Light OJ 1316 A Wedding Party 最短路+状态压缩DP

题目来源:Light OJ 1316 1316 - A Wedding Party题意:和HDU 4284 差不多 有一些商店 从起点到终点在走过尽量多商店的情况下求最短路思路:首先预处理每两点之前的最短路 然后只考虑那些商店 个数小于15嘛 就是TSP问题 状态压缩DP搞一下 状态压缩姿势不对 有必要加强#include #include #include #include

2014-07-06 17:32:01 1033

原创 Light OJ 1429 Assassin`s Creed (II) BFS+缩点+最小路径覆盖

题目来源:Light OJ 1429 Assassin`s Creed (II)题意:最少几个人走完全图 可以重复走 有向图思路:如果是DAG图并且每个点不能重复走 那么就是裸的最小路径覆盖 现在不是DAG 可能有环 并且每个点可能重复走 对于有环 可以缩点 缩点之后的图是DAG图 另外点可以重复走和POJ 2594一样 先预处理连通性#include #include #incl

2014-07-05 12:17:50 1998

原创 Light OJ 1304 The Best Contest Site Ever 行列匹配变形

题目来源:Light OJ 1304 The Best Contest Site Ever题意:。的位置可以放人 W是障碍物 R除了不能放人之外和。一样 求最多放几个人 思路:行列匹配变形 要重新编行号和列号每一行 因为被W隔断了..RR..W.RW.RRR. 对应行号是1 1 0 0 23 0 4 0 05 0 0 0 5模拟一下预处理

2014-07-04 19:12:13 1145

原创 HDU 1281 棋盘游戏 行列匹配

题目来源:HDU 1281 棋盘游戏题意:有一些点可以放车 放的时候不能相互攻击到 求出哪一些点必须放 不放就不能得到最大的匹配思路:行列匹配 矩阵的每一个点对于二分图的每一条边 首先求出最大匹配ans 然后如果每次去掉一个点然后再重新求最大匹配 很耗时 可以把第一次二分匹配的图存着然后那些关键点肯定是是匹配的边 枚举去掉那一个格点(就是去掉一条已经匹配边)如果还能匹配 那么该格点就不

2014-07-01 18:56:16 884

原创 HDU 3360 National Treasures 奇偶匹配最小点覆盖

题目来源:HDU 3360 National Treasures题意:如果a[i][j] != -1 把他转成二进制 最多有12位 代表题目那张图的12个位置 如果对应位是1 说明在那里放一个守卫可以看住a[i][j]位置上的这个东西思路:明显死最小点覆盖 奇偶匹配建图 #include #include #include using namespace std;const i

2014-06-29 01:09:38 1343

原创 HDU 3118 Arbiter 判定奇圈

题目来源:HDU 3118 Arbiter题意:翻译过来就是不能有奇圈 每走一步状态会变化 当他回到起点时如果和原来的状态不一样 可能会死 求至少去掉多少条边可以避免这种状况发生思路:二分图是没有奇圈的 最多就15个点 我们用状态压缩枚举那些点是在二分图的一边和另外一边 确定二分图之后枚举输入的边 每条边连接的不能是同一集合的点不符合就去掉 最后取小#include #inclu

2014-06-25 17:45:16 1226

原创 UVa 10828 Back to Kernighan-Ritchie 高斯消元+概率DP

题目来源:UVa 10828 Back to Kernighan-Ritchie题意:从1开始 每次等概率从一个点到和他相邻的点 有向 走到不能走停止 求停止时每个点的期望思路:写出方程消元 方程有唯一解 多解 无解的情况 有环 一直再环里无法停止算无穷大 从1不能到的点期望为0#include #include #include #include #include usin

2014-06-21 14:30:32 1337

原创 Light OJ 1272 Maximum Subset Sum 高斯消元 最大XOR值

题目来源:Light OJ 1272 Maximum Subset Sum题意:选出一些数 他们的抑或之后的值最大思路:每个数为一个方程 高斯消元 从最高位求出上三角 消元前k个a[i]异或和都能有消元后的异或和组成消元前k个a[i]a[i]异或和都能有消元后的异或和都能有消元后的p个a[i]a[i]的异或的异或保证每一列只有一个1 消元

2014-06-19 19:18:46 3061

原创 Light OJ 1288 Subsets Forming Perfect Squares 高斯消元求矩阵的秩

题目来源:Light OJ 1288 Subsets Forming Perfect Squares题意:给你n个数 选出一些数 他们的乘积是完全平方数 求有多少种方案思路:每个数分解因子 每隔数可以选也可以不选 0 1表示 然后设有m种素数因子 选出的数组成的各个因子的数量必须是偶数组成一个m行和n列的矩阵 每一行代表每一种因子的系数 解出自由元的数量#include #inc

2014-06-18 17:49:37 1771

原创 高斯消元模版

矩阵的秩typedef int Matrix[maxn][maxn];int rank(Matrix A, int m, int n){ int i = 0, j = 0, k, r, u; while(i < m && j < n) { r = i; for(k = i; k < m; k++) if(A[k][j]) { r = k; brea

2014-06-17 13:30:54 904

原创 HDU 2444 The Accomodation of Students 二分图判定+最大匹配

题目来源:HDU 2444 The Accomodation of Students题意:n个人是否可以分成2组 每组的人不能相互认识 就是二分图判定 可以分成2组 每组选一个2个人认识可以去一个双人间 最多可以有几组思路:二分图判定+最大匹配#include #include #include using namespace std;const int maxn =

2014-06-14 14:33:25 1010

原创 二分匹配模版

const int maxn = 10010;int vis[maxn];int y[maxn];vector G[maxn];int n;bool dfs(int u){ for(int i = 0; i < G[u].size(); i++) { int v = G[u][i]; if(vis[v]) continue; vis[v] = true;

2014-06-12 19:47:26 928

转载 二分匹配题集(个别未完成)

【HDU】1068Girls and Boys 最大匹配★1150Machine Schedule 最小点覆盖★1151Air Raid 最小路径覆盖★1179Ollivanders 最大匹配★1281棋盘游戏 行列匹配+求关键点★★149850 years, 50 colors 行列匹配★1507Uncle Tom's Inherited

2014-06-12 18:38:14 897

转载 KM匹配题集

【HDU】2255奔小康赚大钱 模板题★1533Going Home 模板题★2426Interesting Housing Problem KM★3395Special Fish KM★2282Chocolate KM★2813One fihgt one KM★1853Cyclic Tour 最小费用圈覆盖★★3488Tour 最小

2014-06-12 17:00:56 852

原创 Light 1289 LCM from 1 to n 素数筛选位优化

题目来源:Light 1289 LCM from 1 to n题意:。。思路:从1到n 打过某个数是以一个素数的几次方 那么答案就乘以这个素数主要是筛选素数 存不下 位优化 一个整数32位标记32个数 内存缩小32倍是学习别人的#include #include #include #include using namespace std;const int maxn

2014-06-10 15:07:29 1047

ACM 学习资料

ACM 学习资料 包括一些压缩包 和 数据结构的一点东西

2013-11-29

数据结构课件

数据结构的课件 感觉比书上的代码容易理解

2013-09-04

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除