自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

嗯。

嗯。

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

原创 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 1306

原创 HDU 3118 Arbiter 判定奇圈

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

2014-06-25 17:45:16 1207

原创 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 1327

原创 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 3041

原创 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 1727

原创 高斯消元模版

矩阵的秩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 889

原创 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 997

原创 二分匹配模版

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 915

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

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

2014-06-12 18:38:14 863

转载 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 843

原创 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 1038

原创 拓扑排序模版

bool Topo(){ int sum = 0; while(1) { queue Q; for(int i = 1; i <= n; i++) if(!in[i]) Q.push(i); sum += Q.size(); if(sum == n) return true; if(!Q.size()) return false; whi

2014-06-09 12:19:15 961

原创 POJ 2942 Knights of the Round Table 黑白着色+点双连通分量

题目来源:POJ 2942 Knights of the Round Table题意:统计多个个骑士不能参加任意一场会议 每场会议必须至少三个人 排成一个圈 并且相邻的人不能有矛盾 题目给出若干个条件表示2个人直接有矛盾思路:求补图  可以坐在一起 就是可以相邻的人建一条边 然后如果在一个奇圈上的都是满足的 那些不再任何一个奇圈的就是不满足 求出所有奇圈上的点 总数减去它就是答案首先有

2014-06-08 00:16:56 1055

转载 Tarjan&LCA题集

【HDU】[强连通]:1269  迷宫城堡 判断是否是一个强连通★2767Proving Equivalences  至少加几条边让整个图变成强连通★3836 Equivalent Sets  至少加几条边让整个图变成强连通★1827    Summer Holiday  传递的最小费用★★3072    Intelligence System  传递的最小费用★★38

2014-06-07 15:01:13 982

原创 Light OJ 1291 Real Life Traffic 双连通最少添边数

题目来源:Light OJ 1291 Real Life Traffic题意:最少添加几条边 可以使全图边双连通思路:缩点 重新构图 答案就是(叶子节点数+1)/ 2#include #include #include #include #include using namespace std;const int maxn = 10010;struct Edge{ i

2014-06-07 14:04:43 1271

原创 Light OJ 1026 Critical Links 求桥

题目来源:Light OJ 1026 Critical Links题意:输出桥思路:模版#include #include #include #include #include using namespace std;const int maxn = 10010;struct Edge{ int u, v; Edge(){} Edge(int u, int v):

2014-06-07 13:41:09 1147

原创 割点 桥 双连通分量模版

求割点const int maxn = 1010;vector a[maxn], bcc[maxn];int pre[maxn];int low[maxn];bool iscut[maxn];int bccno[maxn];int cnt[maxn];int dfs_clock;int bcc_cnt;int n;struct Edge{ int u, v;};

2014-06-07 11:43:36 911

原创 Light OJ 1251 Forming the Council 2-SAT输出任意一组解

题目来源:Light OJ 1251 Forming the Council题意:若干了条件至少满足一个 求是否有方案 输出任意一种可能的方案 留下的人的个数思路:2-SAT基础题#include #include #include using namespace std;const int maxn = 100010;int n, m;vector G[maxn*2];

2014-06-06 18:42:31 1024

原创 2-SAT模版

const int maxn = 100010;int n, m;vector G[maxn*2];bool mark[maxn*2];int S[maxn*2], c;int a[maxn], b[maxn], sum;bool dfs(int x){ if(mark[x^1]) return false; if(mark[x]) return true; mark

2014-06-06 18:01:52 942

转载 欧拉回路&特殊图下的哈密顿回路题集

欧拉回路【HDU】1878欧拉回路  判断3018Ant Trip 一笔画问题1116Play on Words2894DeBruijin 兹鼓欧拉回路1956Sightseeing tour 混合欧拉3472HS BDC 混合欧拉======================================================

2014-06-06 11:40:33 990

原创 Light OJ 1278 Sum of Consecutive Integers N拆分成连续整数和

题目来源:Light OJ 1278 Sum of Consecutive Integers题意:N拆分成连续整数和的方案数思路:奇因数的个数#include #include #include #include using namespace std;//筛素数 const int maxn = 10000010;bool vis[maxn];int prime[10

2014-06-05 20:16:49 1166

原创 Light OJ 1268 Unlucky Strings 矩阵快速幂+KMP

题目来源:Light OJ 1268 Unlucky Strings题意:给你一些可以用的字符 然后求组成不包含给定字符串的方案数思路:矩阵经典问题 从i走k步路到达j的方案数 可以用矩阵快速幂求解对于求长度为n的字符的方案数 就是走n步路 求走法可以用KMP求出走一步 从前i个字符到前j个字符的方案数 这点有点不好理解 想一想#include #include #

2014-06-04 19:38:41 1220

原创 Light OJ 1108 Instant View of Big Bang 求哪些点能到达负环

题目来源:Light OJ 1108 Instant View of Big Bang题意:求哪些点可以回到过去 首先负环的点是可以的 一直在付欢里转即可 然后那些可以走到负环的点满足思路:反向建图 这样负环还是不会变的 只不过负环的方向换了下 原来能到负环的点变成了现在负环能到的点 求出负环标记然后广搜负环能到的点再标记#include #include #include us

2014-06-03 17:27:04 1394

原创 Light OJ 1011 Marriage Ceremonies 状态压缩DP

题目来源:Light OJ 1011 Marriage Ceremonies题意:n个男生和n个女生配对 给出n*n的矩阵 aij表示男生i选择女生j得到的值 求两两配对后最大可能得到的值思路:dp[i][s|(1#include #include #include using namespace std;const int maxn = 17;const int INF =

2014-06-03 15:46:23 1261

原创 Light OJ 1334 Genes in DNA KMP+DP

题目来源:Light OJ 1334 Genes in DNA题意:输入文本串和模式串 模式串的前缀和后缀组成(n-1)*(n-1)个组合 求模式串的子串出现多少次前后缀组合 一个子串可以对应多个组合串思路:既然是前缀和后缀的组合 很好想到正反求2次KMP 枚举相邻的2个字符 i,j  答案就是若干以i结尾的前缀数量乘以j为开始的后缀数量的积的和求到i字符为止的前缀数量和HDU 333

2014-06-02 15:55:36 1290

原创 Light OJ 1114 Easily Readable 字典树

题目来源:Light OJ 1114 Easily Readable题意:求一个句子有多少种组成方案 只要满足每个单词的首尾字符一样 中间顺序可以变化思路:每个单词除了首尾 中间的字符排序 然后插入字典树 记录每个单词的数量输入一个句子 每个单词也排序之后查找 根据乘法原理 答案就是每个单词的数量之积#include #include #include #include u

2014-06-02 11:42:32 1760

原创 UVa 11865 Stream My Contest 二分+最小树形图

题目来源:UVa 11865 Stream My Contest 题意:0是服务器 其他每个点要接收到0传送的数据 并且每条路单向 有最大带宽和花费 求总花费不超过c的最大带宽思路:单向的0是根 是一颗有向树 要最大化带宽 是树中所有边最小的带宽尽量大 然后总得花费不超过n 二分最小带宽 然后选出带宽大雨二分mid值的边 判断是否存在最小树形图 存在说明mid值可行 此外没有用到白书上

2014-06-01 14:26:02 1035

原创 POJ 1679 The Unique MST 次小生成树

题目来源:POJ 1679 The Unique MST题意:判断最小生成树是否唯一 求出次小生成树比较思路:慢一点的方法就是求出最小生成树 每次去掉最小生成树的一条边再求最小生成树 比较慢更好的方法是 求出最小生成树后加上一条没有用到的边 然后必定出现一条回路 去掉回路上权值最大的边 做m-(n-1)次 求一次最小生成树 然后n^2的时间预处理最小生成树上两点之间最大的边权 最后

2014-06-01 10:23:01 1126

ACM 学习资料

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

2013-11-29

数据结构课件

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

2013-09-04

空空如也

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

TA关注的人

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