12 2015 档案

poj 1830 开关问题 高斯消元
摘要:题目链接高斯消元模板, 判断是否有解以及变元的数量。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 #include 11 #... 阅读全文

posted @ 2015-12-31 20:56 yohaha 阅读(164) 评论(0) 推荐(0)

poj 3680 Intervals 费用流
摘要:题目链接给一些线段, 每个线段有一个值, 并且覆盖一些点, 求每个点被覆盖次数不超过k时, 可以取得的最大值。首先将点离散化, 然后连边, i向i+1连一条容量为k, 费用为0的边。 对于每条线段, 起点向终点连一条容量为1, 费用为-val的边, 然后跑费用流就好。 1 #include 2... 阅读全文

posted @ 2015-12-30 19:02 yohaha 阅读(149) 评论(0) 推荐(0)

codeforces 400E. Inna and Binary Logic 线段树
摘要:题目链接给出n个数, 定义a[1][i]为这初始的n个数, 然后a[i][j] = a[i-1][j]&a[i-1][j-1], 这样就可以得到一个三角形一共n*(n-1)/2个数。给出一种操作, 将a[1][x]这个位置的数换为y, 然后求换完之后的这n(n-1)/2个数的和。很有意思的题, 这个... 阅读全文

posted @ 2015-12-30 15:21 yohaha 阅读(257) 评论(0) 推荐(0)

codeforcese 498C. Array and Operations 网络流
摘要:题目链接给n个数, m个数对, 每个数对是两个下标加起来为奇数的两个数。每次操作可以使一个数对中的两个数同时除某个数, 除的这个数是这两个数的任意约数, 问这种操作最多可以做几次。n 2 #include 3 #include 4 #include 5 #include 6 #in... 阅读全文

posted @ 2015-12-29 14:22 yohaha 阅读(314) 评论(0) 推荐(0)

poj 3764 The xor-longest Path Trie
摘要:题目链接求树上的一条最长异或路径。定义f(u, v)为u到v的路径, 那么显然f(1, u)^f(1, v) = f(u, v), 想不到这个就没有办法做。然后就可以用字典树查询+插入了。用指针版本的狂T不止。#include #include #include #include #include ... 阅读全文

posted @ 2015-12-29 10:37 yohaha 阅读(188) 评论(0) 推荐(0)

codeforces 609E. Minimum spanning tree for each edge 树链剖分
摘要:题目链接给一个n个节点m条边的树, 每条边有权值, 输出m个数, 每个数代表包含这条边的最小生成树的值。先将最小生成树求出来, 把树边都标记。 然后对标记的边的两个端点, 我们add(u, v), add(v, u)。 对于每一次输出, 如果这条边被标记了, 那么直接输出mst的值。 否则, 加上这... 阅读全文

posted @ 2015-12-29 01:18 yohaha 阅读(378) 评论(0) 推荐(0)

spoj 375 QTREE - Query on a tree 树链剖分
摘要:题目链接给一棵树, 每条边有权值, 两种操作, 一种是将一条边的权值改变, 一种是询问u到v路径上最大的边的权值。树链剖分模板。#include #include #include #include #include #include #include #include #include #incl... 阅读全文

posted @ 2015-12-29 00:20 yohaha 阅读(172) 评论(0) 推荐(0)

hihocoder #1260 : String Problem I
摘要:题目链接时间限制:10000ms单点时限:1000ms内存限制:256MB描述我们有一个字符串集合S,其中有N个两两不同的字符串。还有M个询问,每个询问给出一个字符串w,求有多少S中的字符串可以由w添加恰好一个字母得到。字母可以添加在包括开头结尾在内的任意位置,比如在"abc"中添加"x",就可能得... 阅读全文

posted @ 2015-12-28 20:54 yohaha 阅读(287) 评论(0) 推荐(0)

codeforces 282E. Sausage Maximization Trie
摘要:题目链接给n个数, 让你找出一个前缀和一个后缀, 它们异或完以后最大, 前缀和后缀都是异或得来的, 可以为空, 为空时按0算。前缀后缀不可覆盖。这题好神, 竟然是Trie树...首先将所有数的异或算出来作为初始的后缀, 初始前缀为0。 然后往字典树里插入前缀, 在对后缀进行查找, 查找时, 从高位往... 阅读全文

posted @ 2015-12-28 20:07 yohaha 阅读(344) 评论(0) 推荐(0)

UVA 10325 lottery 容斥原理
摘要:题目链接给出m个数, 求1-n的范围内, 无法整除这m个数之中任何一个数的数的个数。设m个数为a[i], 对任意的i, n/a[i]是n中可以整除a[i]的数的个数, 但是这样对于有些数重复计算了, 那么就需要减去一些数, 对任意两个数, 设x为这两个数的lcm, 那么需要减去n/lcm,然后加上任... 阅读全文

posted @ 2015-12-28 16:55 yohaha 阅读(147) 评论(0) 推荐(0)

poj 2773 Happy 2006 容斥原理+二分
摘要:题目链接容斥原理求第k个与n互质的数。#include #include #include #include #include #include #include #include #include #include #include #include using namespace std;#de... 阅读全文

posted @ 2015-12-28 16:30 yohaha 阅读(151) 评论(0) 推荐(0)

POJ 1151Atlantis 扫描线+线段树求矩形面积并
摘要:题目链接 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 #include 11 #include 12 #include 13... 阅读全文

posted @ 2015-12-28 09:56 yohaha 阅读(146) 评论(0) 推荐(0)

hdu 3333 Turing Tree
摘要:题目链接给n个数, m个询问, 每次询问输出区间内的数的和, 相同的数只计算一次。数组里的数是>-1e9 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #i... 阅读全文

posted @ 2015-12-28 00:33 yohaha 阅读(154) 评论(0) 推荐(0)

codeforces 522D. Closest Equals 线段树+离线
摘要:题目链接n个数m个询问, 每次询问输出给定区间中任意两个相同的数的最近距离。先将询问读进来, 然后按r从小到大排序, 将n个数按顺序插入, 并用map统计之前是否出现过, 如果出现过, 就更新线段树。如果当前的i等于某个询问的r, 那么就查询, 具体看代码。 1 #include 2 #inc... 阅读全文

posted @ 2015-12-27 15:39 yohaha 阅读(190) 评论(0) 推荐(0)

cdoj 1134 男神的约会 状压dp
摘要:题目链接给一个10*10的方格, 每个格子里面有0-9,走到一个格子, 就要在这个格子待一段时间, 时间长度为这个格子的数字。 从左上角走到右下角, 要求0-9必须每种格子都要走到, 输出最短时间。在平常dp的基础上多开一维, 然后用二进制代表哪些走到过哪些没有走到过, 最后输出dp[10][10]... 阅读全文

posted @ 2015-12-26 16:18 yohaha 阅读(190) 评论(0) 推荐(0)

cdoj 1131 男神的礼物 区间dp
摘要:题目链接给n个数字, 拿走两个数字a, b会有a*b的代价, 并新生成一个数字(a+b)%100, 求拿走所有数字所需的最小代价。区间dp, 枚举分界点, 然后记忆化搜索。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #... 阅读全文

posted @ 2015-12-26 15:42 yohaha 阅读(156) 评论(0) 推荐(0)

CDOJ 1259 昊昊爱运动 II bitset+线段树
摘要:题目链接昊昊喜欢运动他N天内会参加M种运动(每种运动用一个[1,m]的整数表示)现在有Q个操作,操作描述如下昊昊把第l天到第r天的运动全部换成了x(x∈[1,m])问昊昊第l天到第r天参加了多少种不同的运动Input输入两个数N,M(1≤N≤105,1≤M≤100);输入N个数ai(ai∈[1,m]... 阅读全文

posted @ 2015-12-26 14:39 yohaha 阅读(273) 评论(0) 推荐(0)

codeforces 508D . Tanya and Password 欧拉通路
摘要:题目链接 给你n个长度为3的子串, 这些子串是由一个长度为n+2的串分割得来的, 求原串, 如果给出的不合法, 输出-1。 一个欧拉通路的题, 将子串的前两个字符和后两个字符看成一个点, 比如acb, 就是ac->cb。 然后建图。 1 #include <iostream> 2 #include 阅读全文

posted @ 2015-12-26 13:41 yohaha 阅读(154) 评论(0) 推荐(0)

poj 1041 John's trip 欧拉回路
摘要:题目链接 求给出的图是否存在欧拉回路并输出路径, 从1这个点开始, 输出时按边的升序输出。 将每个点的边排序一下就可以。 1 #include <iostream> 2 #include <vector> 3 #include <cstdio> 4 #include <cstring> 5 #inc 阅读全文

posted @ 2015-12-26 11:59 yohaha 阅读(157) 评论(0) 推荐(0)

poj 1651 Multiplication Puzzle 区间dp
摘要:题目链接给一串数, 拿出一个数i的代价是a[i-1]*a[i]*a[i+1], 第一个数和最后一个数不能拿, 求拿走剩下的数的代价的最小值。#include #include #include #include #include #include #include #include #include... 阅读全文

posted @ 2015-12-24 10:22 yohaha 阅读(188) 评论(0) 推荐(0)

poj 2955 Brackets 区间dp
摘要:题目链接给一堆括号, 问最多有多少个是匹配的。依然是区间dp, 直接记忆化搜索就可以。#include #include #include #include #include #include #include #include #include #include using namespace s... 阅读全文

posted @ 2015-12-24 09:33 yohaha 阅读(133) 评论(0) 推荐(0)

codeforces 607B. Zuma 区间dp
摘要:题目链接给一个长度为n的序列, 每一次可以消去其中的一个回文串, 问最少几次才可以消完。代码很清楚#include #include #include #include #include #include #include #include #include #include using names... 阅读全文

posted @ 2015-12-24 09:00 yohaha 阅读(249) 评论(0) 推荐(0)

hdu 4638 Group 莫队算法
摘要:题目链接很裸的莫队, 就不多说了... 1 #include 2 using namespace std; 3 #define pb(x) push_back(x) 4 #define ll long long 5 #define mk(x, y) make_pair(x, y) 6 #define... 阅读全文

posted @ 2015-12-23 23:38 yohaha 阅读(364) 评论(0) 推荐(0)

codeforces 551E. GukiZ and GukiZiana 分块
摘要:题目链接 给出n个数, m个操作, 每个操作有两种, 将一段区间加上某个值, 或者询问一个k, a[i] = a[j] = k, 输出满足条件的最大的j-i, 如果没有输出-1。 做法是将数组分块, 第一次做这种, 抄的codeforces上面的代码... #include<bits/stdc++. 阅读全文

posted @ 2015-12-23 21:13 yohaha 阅读(276) 评论(0) 推荐(0)

codeforces 557D. Vitaly and Cycle 二分图染色
摘要:题目链接 n个点, m条边, 问最少加几条边可以出现一个奇环, 在这种情况下, 有多少种加边的方式。 具体看代码解释 1 #include<bits/stdc++.h> 2 using namespace std; 3 #define pb(x) push_back(x) 4 #define ll 阅读全文

posted @ 2015-12-23 16:36 yohaha 阅读(222) 评论(0) 推荐(0)

poj 2135 Farm Tour 费用流
摘要:题目链接给一个图, N个点, m条边, 每条边有权值, 从1走到n, 然后从n走到1, 一条路不能走两次,求最短路径。如果(u, v)之间有边, 那么加边(u, v, 1, val), (v, u, 1, val), val是路的长度,代表费用, 1是流量。 1 #include 2 #inc... 阅读全文

posted @ 2015-12-23 13:02 yohaha 阅读(151) 评论(0) 推荐(0)

poj 3422 Kaka's Matrix Travels 费用流
摘要:题目链接给一个n*n的矩阵, 从左上角出发, 走到右下角, 然后在返回左上角,这样算两次。 一共重复k次, 每个格子有值, 问能够取得的最大值是多少, 一个格子的值只能取一次, 取完后变为0。费用流第一题, 将每个格子拆为两个点, u向u'连一条容量为1, 费用为格子的值的边, u向u'再连一条容量... 阅读全文

posted @ 2015-12-23 12:38 yohaha 阅读(178) 评论(0) 推荐(0)

bzoj 2763: [JLOI2011]飞行路线 分层图
摘要:题目链接 n个点m条路, 每条路有权值, 给出起点和终点, 求一条路使得权值最小。可以使路过的路中, k条路的权值忽略。 其实就是多一维, 具体看代码 #include<bits/stdc++.h> using namespace std; #define pb(x) push_back(x) #d 阅读全文

posted @ 2015-12-22 20:51 yohaha 阅读(175) 评论(0) 推荐(0)

hdu 1806 Frequent values 线段树
摘要:题目链接给一个非递减数列, n个数, m个询问, 每个询问给出区间[L, R], 求这个区间里面出现次数最多的数的次数。非递减数列, 这是最关键的一个条件...需要保存一个区间最左边的数, 最右边的数, 最长前缀, 最长后缀, 和这个区间里面次数最多的数的次数。一个区间出现最多的数的次数, 应该是左... 阅读全文

posted @ 2015-12-22 18:48 yohaha 阅读(257) 评论(0) 推荐(0)

codeforces 600E. Lomsat gelral 启发式合并
摘要:题目链接给一颗树, 每个节点有初始的颜色值。 1为根节点。定义一个节点的值为, 它的子树中出现最多的颜色的值, 如果有多种颜色出现的次数相同, 那么值为所有颜色的值的和。每一个叶子节点是一个map, 然后从叶子节点并上去, 注意并的时候把小的map并到大的map里面。 1 #include 2 us... 阅读全文

posted @ 2015-12-22 16:25 yohaha 阅读(419) 评论(0) 推荐(0)

bzoj 1085: [SCOI2005]骑士精神 IDA*
摘要:题目链接 给一个图, 目标位置是确定的, 问你能否在15步之内达到目标位置。 因为只有15步, 所以直接ida* #include<bits/stdc++.h> using namespace std; #define pb(x) push_back(x) #define ll long long 阅读全文

posted @ 2015-12-21 20:47 yohaha 阅读(164) 评论(0) 推荐(0)

bzoj 1066 : [SCOI2007]蜥蜴 网络流
摘要:题目链接 给一个n*m的图, 里面每一个点代表一个石柱, 石柱有一个高度。 初始时有些石柱上面有蜥蜴, 蜥蜴可以跳到距离他曼哈顿距离小于等于d的任意一个石柱上,跳完后, 他原来所在的石柱高度会减一, 如果高度变为0, 那么石柱消失, 无法在跳到这个位置上, 跳到的那个石柱高度不会发生改变, 同一时刻 阅读全文

posted @ 2015-12-21 19:20 yohaha 阅读(284) 评论(0) 推荐(0)

bzoj 1303: [CQOI2009]中位数图
摘要:题目链接 给n个数,一个值b, 统计所有以b为中位数的序列的个数。序列长度为奇数。数字在1-n之间, 每个数只出现一次。 如果一个数大于b, 那么将他赋值为1, 小于b赋值为-1, 记录数组中b出现的位置, 为pos。 具体看代码.......好难说清 #include<bits/stdc++.h> 阅读全文

posted @ 2015-12-21 17:02 yohaha 阅读(156) 评论(0) 推荐(0)

BUAA 更大公约数
摘要:题目链接给一个n*m的矩阵, 删除里面的一行一列, 使得剩下的数的最大公约数最大。一个格子(x,y), 先预处理出(1,1)到这个格子的内所有数的最大公约数, 同理处理出(1, m), (n, m), (n, 1), 然后枚举格子中的每一个数, 具体看代码。#includeusing namespa... 阅读全文

posted @ 2015-12-21 13:45 yohaha 阅读(145) 评论(0) 推荐(0)

找出n个数中出现了奇数次的两个数
摘要:如果是找只出现了奇数次的一个数, 那么我们从头异或一遍就可以。 那么如何找出现了奇数次的两个数呢?首先我们还是从头异或一遍, 然后结果肯定不为0, 对于异或出来的结果, 如果这个数的某一位是1, 说明出现了奇数次的那两个数在这一位上一个为0, 一个为1。 所以我们可以根据这个条件将原数组分为两个数组... 阅读全文

posted @ 2015-12-21 10:33 yohaha 阅读(1072) 评论(0) 推荐(0)

poj 1966 Cable TV Network 顶点连通度
摘要:题目链接给一个图, n个点m条边, 求至少去掉多少个点可以使得图不再联通。随便指定一个点为源点, 枚举其他点为汇点的情况, 跑网络流, 求其中最小的情况。 如果最后ans为inf, 说明是一个完全图, 那么结果就为n。 1 #include 2 #include 3 #include ... 阅读全文

posted @ 2015-12-20 10:53 yohaha 阅读(172) 评论(0) 推荐(0)

poj 3228 Gold Transportation 二分+网络流
摘要:题目链接给出n个城市, 每个城市有一个仓库, 仓库有容量限制, 同时每个城市也有一些货物, 货物必须放到仓库中。 城市之间有路相连, 每条路有长度。 因为有些城市的货物量大于仓库的容量, 所以要运到别的城市,求所有货物都放到仓库中时, 走过的路中, 最长的那条路最短的情况, 输出这条路的长度。很容易... 阅读全文

posted @ 2015-12-18 19:02 yohaha 阅读(277) 评论(0) 推荐(0)

bzoj 3289: Mato的文件管理 莫队+线段树
摘要:题目链接 给一些询问,每个询问给出区间[L, R] , 求这段区间的逆序数。 先分块排序, 然后对于每次更改, 如果是更改L, 那么应该查询区间内比他小的数的个数, 如果更改R, 查区间内比他大的数的个数。 记得离散化。 1 #include<bits/stdc++.h> 2 using names 阅读全文

posted @ 2015-12-18 16:25 yohaha 阅读(251) 评论(0) 推荐(0)

bzoj 2038: [2009国家集训队]小Z的袜子(hose) 莫队算法
摘要:题目链接 给n个数, m个询问, 每个询问有[L, R]两个值, 在这段区间内取两个数,求这两个数相同的概率。 对于区间[L, R], 概率的分母显然是(R-L+1)*(R-L)/2, 对于分子, 假设我们已经有了一个1, 又遇到了一个1, 那么这时分子应该加上(2*1)/2, 假如又遇到了一个1, 阅读全文

posted @ 2015-12-18 15:13 yohaha 阅读(155) 评论(0) 推荐(0)

codeforces 603C. Lieges of Legendre sg函数
摘要:题目链接n堆石子, 可以拿走一堆中的一颗, 或者将一堆数量为2*x的石子分为k堆x个的石子。k由题目给出。k分奇偶讨论。 k为偶数时,k堆x个的石子异或结果为0; k为奇数时, k堆x个石子异或结果与mex(x)相等, 然后打不同的sg表找规律, 打表程序看代码。 1 #include 2 usin... 阅读全文

posted @ 2015-12-18 11:16 yohaha 阅读(334) 评论(0) 推荐(0)

poj 3592 Instantaneous Transference 缩点+最长路
摘要:题目链接 给一个n*m的图, 从0, 0这个点开始走,只能向右和向下。 图中有的格子有值, 求能获得的最大值。 其中有些格子可以传送到另外的格子, 有些格子不可以走。 将图中的每一个格子都看成一个点, 然后对它右边和下边的点连边, 如果是'#’就continue, 如果可以传送, 那么就对传送到的那 阅读全文

posted @ 2015-12-18 11:03 yohaha 阅读(134) 评论(0) 推荐(0)

poj 1949 Chores 最长路
摘要:题目链接 求出最长路..... 1 #include <iostream> 2 #include <vector> 3 #include <cstdio> 4 #include <cstring> 5 #include <algorithm> 6 #include <cmath> 7 #includ 阅读全文

posted @ 2015-12-17 19:58 yohaha 阅读(187) 评论(0) 推荐(0)

poj 1724 ROADS 最短路
摘要:题目链接n个节点, m条边, 一开始有K这么多的钱, 每条边有len, cost两个属性, 求1到n的最短距离, 花费要小于k。dis数组开成二维的, dis[u][cost]表示到达u花费为cost的最短路径, 然后dij+堆优化。路是单向的.. 1 #include 2 #include 3... 阅读全文

posted @ 2015-12-17 19:38 yohaha 阅读(160) 评论(0) 推荐(0)

hdu 4888 Redraw Beautiful Drawings 网络流
摘要:题目链接一个n*m的方格, 里面有 2 using namespace std; 3 #define pb(x) push_back(x) 4 #define ll long long 5 #define mk(x, y) make_pair(x, y) 6 #define lson l,... 阅读全文

posted @ 2015-12-17 18:59 yohaha 阅读(210) 评论(0) 推荐(0)

hdu 4735Little Wish~ lyrical step~ 重复覆盖
摘要:题目链接给出一棵树, 树上点的值为0或1, 可以交换树上两个点的权值, 给出一个距离m, 所有的0距离最近的1的距离不能超过m, 求最少的交换次数。首先对于每一个点u,所有离u的距离不超过m的点v, 加一条边(u, v)。然后dlx, 剪枝的函数是当前1的个数+还需要的1的个数不超过1的总数, 具体... 阅读全文

posted @ 2015-12-17 16:13 yohaha 阅读(207) 评论(0) 推荐(0)

hdu 3980 Paint Chain sg函数
摘要:题目链接给一个长度为n的环, 两个人轮流涂色, 每次涂m个连续的, 无法继续涂了就输。 1 #include 2 using namespace std; 3 #define pb(x) push_back(x) 4 #define ll long long 5 #define mk(x, y) m... 阅读全文

posted @ 2015-12-16 19:22 yohaha 阅读(207) 评论(0) 推荐(0)

hdu 3032 Nim or not Nim? 打sg表
摘要:题目链接给出n堆石子, 每次可以取一堆中的任意x个(x>=1), 或者将一堆石子拆成两堆, 取到最后一堆的胜。这个题需要打sg表找规律, 打表程序看代码。 1 #include 2 using namespace std; 3 #define pb(x) push_back(x) 4 #define... 阅读全文

posted @ 2015-12-16 16:53 yohaha 阅读(165) 评论(0) 推荐(0)

FZU Problem 1686 神龙的难题 重复覆盖
摘要:题目链接给出大矩形的长宽, 矩形里面有1,0两个值, 给出小矩形的长宽, 求用最少的小矩形覆盖所有的1.重复覆盖的模板题。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #includ... 阅读全文

posted @ 2015-12-16 12:36 yohaha 阅读(152) 评论(0) 推荐(0)

hdu 2295 Radar 重复覆盖+二分
摘要:题目链接给m个雷达, n个城市, 以及每个城市的坐标, m个雷达里只能使用k个, 在k个雷达包围所有城市的前提下, 求最小半径。先求出每个雷达到所有城市的距离, 然后二分半径, 如果距离小于二分的值, 就加边(大概不叫加边, 我也不知道叫什么......#includeusing namespace... 阅读全文

posted @ 2015-12-15 21:34 yohaha 阅读(185) 评论(0) 推荐(0)

hdu 3529 Bomberman - Just Search! 重复覆盖
摘要:题目链接依然是重复覆盖的模板.... 1 #include 2 using namespace std; 3 #define pb(x) push_back(x) 4 #define ll long long 5 #define mk(x, y) make_pair(x, y) 6 #d... 阅读全文

posted @ 2015-12-15 20:22 yohaha 阅读(157) 评论(0) 推荐(0)

hdu 3498 whosyourdaddy 重复覆盖
摘要:题目链接重复覆盖的入门题, 和精确覆盖不一样, 删除的时候只删除一行多列。 1 #include 2 using namespace std; 3 #define pb(x) push_back(x) 4 #define ll long long 5 #define mk(x, y) ma... 阅读全文

posted @ 2015-12-15 19:05 yohaha 阅读(178) 评论(0) 推荐(0)

codeforces 401D. Roman and Numbers 数位dp
摘要:题目链接给出一个 2 using namespace std; 3 #define pb(x) push_back(x) 4 #define ll long long 5 #define mk(x, y) make_pair(x, y) 6 #define lson l, m, rt pll;14 ... 阅读全文

posted @ 2015-12-15 16:19 yohaha 阅读(295) 评论(0) 推荐(0)

hdu 1524 A Chess Game 博弈
摘要:题目链接给出一个有向无环图, 上面放有一些棋子, 两个人轮流移动棋子, 当一个人无法移动时, 算输。求出每一个点的sg值, 异或就可以。出度为0的点sg值为0。 1 #include 2 using namespace std; 3 #define pb(x) push_back(x) 4 #def... 阅读全文

posted @ 2015-12-15 09:54 yohaha 阅读(167) 评论(0) 推荐(0)

hdu 2824The Euler function
摘要:题目链接 快速求出a到b之间所有数的欧拉函数。 一个一个求肯定是不行的, 我们知道欧拉函数的公式为phi(n) = n*(1-1/i1)*(1-1/i2).......i1, i2为素因子。 那么我们就可以先将每一个数的欧拉函数值预处理出来。 具体看代码 1 #include<bits/stdc++ 阅读全文

posted @ 2015-12-14 14:17 yohaha 阅读(121) 评论(0) 推荐(0)

codeforces 535D. Tavas and Malekas KMP
摘要:题目链接又复习了一遍kmp....之前都忘光了 1 #include 2 using namespace std; 3 #define pb(x) push_back(x) 4 #define ll long long 5 #define mk(x, y) make_pair(x, y) 6 #de... 阅读全文

posted @ 2015-12-14 10:11 yohaha 阅读(373) 评论(0) 推荐(0)

ural 1057. Amount of Degrees 数位dp
摘要:题目链接给四个数l, r, k, b。 求出在[l, r]内满足这个数可以分解成k个不同的b次方的数的个数。只要把一个数按b进制分解, 然后找一个刚好有k个1, 其余都是0的数的个数。好神....按B进制分解完全想不到。 1 #include 2 using namespace std; 3 #de... 阅读全文

posted @ 2015-12-13 21:00 yohaha 阅读(146) 评论(0) 推荐(0)

codeforces 242E. XOR on Segment 线段树
摘要:题目链接给n个数, 两种操作, 一种是求区间内的数的和, 一种是将区间内的数异或x。异或x没有什么思路, 单个异或肯定超时, 区间异或也没有办法做....后来才知道可以按位建线段树, 这样建20棵线段树就可以。每一次异或, 对于给定的x, 如果x的第i位是1, 那么就将第i棵线段树在给定的区间内0,... 阅读全文

posted @ 2015-12-13 20:01 yohaha 阅读(471) 评论(0) 推荐(0)

codeforces 546E. Soldier and Traveling 网络流
摘要:题目链接给出n个城市, 以及初始时每个城市的人数以及目标人数。初始时有些城市是相连的。 每个城市的人只可以待在自己的城市或走到与他相邻的城市, 相邻, 相当于只能走一条路。如果目标状态不可达, 输出no, 否则输出每个城市的人都是怎么走的, 比如第一个城市有2个人走到了第二个城市, 1个人留在了第一... 阅读全文

posted @ 2015-12-13 15:35 yohaha 阅读(542) 评论(0) 推荐(0)

hdu 3397 Sequence operation 线段树
摘要:题目链接给出n个数, 每个数是0或1, 给5种操作, 区间变为1, 区间变为0, 区间0,1翻转, 询问区间内1的个数, 询问区间内最长连续1的个数。需要将数组开成二维的, 然后区间0, 1翻转只需要交换一个数组的第二维就可以。一个数组记录区间最长, 一个记录前缀, 一个记录后缀, 一个记录总数, ... 阅读全文

posted @ 2015-12-13 13:44 yohaha 阅读(160) 评论(0) 推荐(0)

codeforces 510E. Fox And Dinner 网络流
摘要:题目链接给出n个人, 以及每个人的值, 要求他们坐在一些桌子上面, 每个桌子如果有人坐, 就必须做3个人以上。 并且相邻的两个人的值加起来必须是素数。每个人的值都>=2.由大于等于2这个条件, 可以知道素数都是奇数, 那么很明显就需要一奇一偶相邻这样做, 那么一个桌子上必定有偶数个人。 一个奇数旁边... 阅读全文

posted @ 2015-12-12 23:58 yohaha 阅读(545) 评论(0) 推荐(1)

hdu 3308 LCIS 线段树
摘要:题目链接给出n个数m个询问, 询问有两种, 一种是将第x个数改为y, 一种是询问[x, y]之间最长连续上升序列, 因为是连续的, 所以就是一个简单的区间合并问题。用5个数组, 记录一个区间内的最长连续序列, 最长前缀, 最长后缀, 区间左端点的数是几, 右端点的数是几, 合并的时候判断左区间右端点... 阅读全文

posted @ 2015-12-12 16:07 yohaha 阅读(143) 评论(0) 推荐(0)

hdu 3530 Subsequence 单调队列
摘要:题目链接题目给出n个数, 一个下界m, 一个上界k, 让你求出最长的一段序列, 满足这段序列中的最大的数-最小的数=m, 输出这段长度。可以维护两个队列, 一个队列的队头元素是这一段中的最大值,是一个单调递减的数列; 另一个队列是这段中的最小值, 单调递增的数列。具体看代码。 1 #include ... 阅读全文

posted @ 2015-12-12 10:44 yohaha 阅读(557) 评论(0) 推荐(0)

spoj 10606 Balanced Numbers 数位dp
摘要:题目链接一个数称为平衡数, 满足他各个数位里面的数, 奇数出现偶数次, 偶数出现奇数次, 求一个范围内的平衡数个数。用三进制压缩, 一个数没有出现用0表示, 出现奇数次用1表示, 出现偶数次用2表示, 这样只需要开一个20*60000的数组。 1 #include 2 using namespace... 阅读全文

posted @ 2015-12-12 09:52 yohaha 阅读(170) 评论(0) 推荐(0)

codeforces 55D. Beautiful numbers 数位dp
摘要:题目链接一个数, 他的所有位上的数都可以被这个数整除, 求出范围内满足条件的数的个数。dp[i][j][k], i表示第i位, j表示前几位的lcm是几, k表示这个数mod2520, 2520是1-9之间数的lcm。 然后这样数组就要开成20*2520*2520, 太大了, 所以我们将lcm离散,... 阅读全文

posted @ 2015-12-10 23:51 yohaha 阅读(162) 评论(0) 推荐(0)

ZOJ 3209 Treasure Map 精确覆盖
摘要:题目链接精确覆盖的模板题, 把每一个格子当成一列就可以。S忘记初始化TLE N次, 哭晕在厕所...... 1 #include 2 using namespace std; 3 #define pb(x) push_back(x) 4 #define ll long long 5 #de... 阅读全文

posted @ 2015-12-10 19:56 yohaha 阅读(217) 评论(0) 推荐(0)

hdu 3709 Balanced Number 数位dp
摘要:题目链接一个数称为平衡数, 只要他的某一位满足, 这一位左边的所有数sigma x*(x距离这一位的距离)等于右边的sigma x*(x距离这一位的距离), 例如4139, 3就满足这个性质, 因为4*2+1*1 == 9*1。求出一个范围内的平衡数的数量。看起来好麻烦, 不好想状态, 但是我们可以... 阅读全文

posted @ 2015-12-10 17:50 yohaha 阅读(146) 评论(0) 推荐(0)

hdu 3652 B-number 数位dp
摘要:题目链接求出1-n中包含13并且能被13整除的数的个数开一个四维数组dp[i][j][k][l], i表示第i位, j表示这个数mod13, k表示是否包含13, l表示前一位是什么。 1 #include 2 using namespace std; 3 #define pb(x) push_ba... 阅读全文

posted @ 2015-12-10 16:09 yohaha 阅读(167) 评论(0) 推荐(0)

poj 3252 Round Numbers 数位dp
摘要:题目链接找一个范围内二进制中0的个数大于等于1的个数的数的数量。基础的数位dp 1 #include 2 using namespace std; 3 #define mem1(a) memset(a, -1, sizeof(a)) 4 int digit[50], dp[50][50][50], ... 阅读全文

posted @ 2015-12-10 12:44 yohaha 阅读(156) 评论(0) 推荐(0)

UESTC 250 windy数 数位dp
摘要:题目链接 1 #include 2 using namespace std; 3 #define mem1(a) memset(a, -1, sizeof(a)) 4 #define ll long long 5 int dp[20][20], digit[20], len; 6 ll dfs(in... 阅读全文

posted @ 2015-12-10 10:48 yohaha 阅读(149) 评论(0) 推荐(0)

hdu 3555 bomb 数位dp
摘要:题目链接和上一题差不多, 可以用总数-不含49的个数。 1 #include 2 using namespace std; 3 #define mem1(a) memset(a, -1, sizeof(a)) 4 #define ll long long 5 ll dp[20][20], digit... 阅读全文

posted @ 2015-12-10 10:21 yohaha 阅读(155) 评论(0) 推荐(0)

hdu 2089 不要62 数位dp入门
摘要:题目链接求出a-b中不含有4以及连续的62的数的个数。 1 #include 2 using namespace std; 3 #define mem1(a) memset(a, -1, sizeof(a)) 4 int dp[10][10], digit[9], len; 5 int dfs(in... 阅读全文

posted @ 2015-12-10 10:02 yohaha 阅读(178) 评论(0) 推荐(0)

poj 3740 Easy Finding 精确匹配
摘要:题目链接dlx的第一题, 真是坎坷..... 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 #includ... 阅读全文

posted @ 2015-12-09 21:49 yohaha 阅读(131) 评论(0) 推荐(0)

codeforces 589F. Gourmet and Banquet 二分+网络流
摘要:题目链接给你n种菜, 每一种可以开始吃的时间不一样, 结束的时间也不一样。 求每种菜吃的时间都相同的最大的时间。时间的范围是0-10000。看到这个题明显可以想到网络流, 但是时间的范围明显不允许我们把对每一个时间都连边。那么我们可以对时间的区间连边, 对于一个区间, 如果一盘菜的开始时间>=这个区... 阅读全文

posted @ 2015-12-09 17:57 yohaha 阅读(228) 评论(0) 推荐(0)

hdu 3572 Escape 网络流
摘要:题目链接给一个n*m的图, 里面有一些点, '.'代表空地, '#'代表墙, 不可以走, '@'代表大门, 可以有多个, 'X'代表人, 问所有人都走出大门需要的最短时间, 每一时刻一个格子只能有一个人, 每个时刻只能有一个人从大门走出, 如果不能走出, 输出-1。先dfs判断是否每个人都能走出, ... 阅读全文

posted @ 2015-12-09 10:28 yohaha 阅读(282) 评论(0) 推荐(0)

hdu 3572 Task Schedule 网络流
摘要:题目链接有n个任务, m个机器, 每个任务有三个值, s,e, p, 表示, 这个任务必须在s天之后才能开始, 必须在e天之前结束, 并且必须要执行p天, 中间可以中断。 每个机器每天只能执行一个任务, 每个任务也只能被一个机器执行。源点s和每个任务建边, 权值为p, 每个任务和s-e之间的这些天建... 阅读全文

posted @ 2015-12-08 20:32 yohaha 阅读(158) 评论(0) 推荐(0)

POJ 1823 Hotel 线段树
摘要:题目链接线段树的区间合并。和上一题差不多....第三种操作只需要输出maxx[1]的值就可以。#include #include #include #include #include #include #include #include #include #include using namespa... 阅读全文

posted @ 2015-12-08 09:42 yohaha 阅读(190) 评论(0) 推荐(0)

poj 3667 Hotel 线段树
摘要:题目链接这个题需要维护三个变量, 一个是区间最大连续长度, 一个是最长前缀, 一个是最长后缀。 需要注意的就是查询的时候, 先查左区间是否满足, 然后应该查左区间和右区间交界处是否满足, 这里要看pre_max[rt#include #include #include #include #inclu... 阅读全文

posted @ 2015-12-08 09:23 yohaha 阅读(181) 评论(0) 推荐(0)

fafu 1100 线段树
摘要:题目链接单点更新, 区间查询。 这题空间好小....#include #include #include #include #include #include #include #include #include #include using namespace std;#define pb(x) ... 阅读全文

posted @ 2015-12-07 18:48 yohaha 阅读(178) 评论(0) 推荐(0)

poj 2155 matrix 二维线段树
摘要:题目链接区间翻转, 单点查询, 查询操作我真是不太明白...... 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 ... 阅读全文

posted @ 2015-12-07 18:20 yohaha 阅读(211) 评论(0) 推荐(0)

hdu 1823 Luck and Love 二维线段树
摘要:题目链接很裸的题, 唯一需要注意的就是询问时给出的区间并不是lusing namespace std;#define pb(x) push_back(x)#define ll long long#define mk(x, y) make_pair(x, y)#define lson l, m, rt... 阅读全文

posted @ 2015-12-07 16:34 yohaha 阅读(146) 评论(0) 推荐(0)

zoj 2589 Matrix Searching 二维线段树
摘要:题目链接给一个n*n的矩阵, 给q个查询, 每次给出x1, y1, x2, y2, 求这个矩阵中的最小值。代码基本上和上一题相同... 1 #include 2 using namespace std; 3 #define pb(x) push_back(x) 4 #define ll lo... 阅读全文

posted @ 2015-12-07 15:55 yohaha 阅读(193) 评论(0) 推荐(0)

UVALive 6709 - Mosaic 二维线段树
摘要:题目链接给一个n*n的方格, 每个方格有值。 每次询问, 给出三个数x, y, l, 求出以x, y为中心的边长为l的正方形内的最大值与最小值, 输出(maxx+minn)/2, 并将x, y这个格子的值改为(maxx+minn)/2。题目保证l为奇数。二维线段树的单点更新, 区间查询。 1 #i... 阅读全文

posted @ 2015-12-07 11:17 yohaha 阅读(173) 评论(0) 推荐(0)

spoj 1557 GSS3 - Can you answer these queries III 线段树
摘要:题目链接给出n个数, 2种操作, 一种是将第x个数改为y, 第二种是询问区间[x,y]内的最大连续子区间。开4个数组, 一个是区间和, 一个是区间最大值, 一个是后缀的最大值, 一个是前缀的最大值。 合并起来好麻烦...... 1 #include 2 #include 3 #includ... 阅读全文

posted @ 2015-12-06 20:38 yohaha 阅读(146) 评论(0) 推荐(0)

zoj 3792 Romantic Value
摘要:题目链接求最小割的值, 以及割边最少的情况的边数。先求一遍最小割, 然后把所有割边的权值变为1, 其他边变成inf, 在求一遍最小割, 此时求出的就是最少边数。Inf打成inf WA了好几发............ 1 #include 2 using namespace std; 3 #de... 阅读全文

posted @ 2015-12-06 16:15 yohaha 阅读(160) 评论(0) 推荐(0)

uva 563 - Crimewave 网络流
摘要:题目链接有一个n*m的图, 里面有q个人, 每个点只能走一次, 问这q个人是否都能够走出这个图。对于每个人, 建边(s, u, 1), 对于每个边界的格子, 建边(u', t, 1), 对于其他格子, 建边(u, u', 1), 以及(u', v, 1), v是它四周的格子。对于求出的最大流, 如果... 阅读全文

posted @ 2015-12-06 15:05 yohaha 阅读(199) 评论(0) 推荐(0)

uva 10779 Collectors Problem 网络流
摘要:链接一共有n个人, m种收藏品, 每个人拥有的收藏品的种类和个数都是不相同的。 假设2-n这些人都只和1互相交换, 比例是1:1, 并且, 2-n这些人, 只换自己现在没有的, 如果他现在有第二种, 那么他就不会在去和别人换这一种。比如说第一个人有6个第一种, 2个第三种, 第二个人有2个第一种, ... 阅读全文

posted @ 2015-12-06 13:56 yohaha 阅读(148) 评论(0) 推荐(0)

codeforces 546D Soldier and Number Game
摘要:题目链接这个题, 告诉你a, b的值, 那么只需要求出b到a之间的数, 每个数有多少个因子就可以。具体看代码, 代码里面有解释 1 #include 2 using namespace std; 3 #define pb(x) push_back(x) 4 const int maxn = 5000... 阅读全文

posted @ 2015-12-06 12:06 yohaha 阅读(198) 评论(0) 推荐(0)

codeforces 463C Gargari and Bishops
摘要:题目链接这个题, 最主要的应该是找到对角线上的格子的关系。 “ \" 这种对角线, 关系是x-y+n相等, ” / “ 这种, 关系是x+y相等。知道每个格子的两种对角线的值, 那么这个格子的值可以表示为d1[x+y]+d2[x-y+n]-a[x][y], a[x][y]是初值。 知道这个以后就好做... 阅读全文

posted @ 2015-12-06 12:00 yohaha 阅读(249) 评论(0) 推荐(0)

codeforces 547B. Mike and Feet 单调栈
摘要:题目链接用单调栈计算出一个数字, 左边第一个比他小的数字的位置, 右边比第一个他小的数字的位置, 然后len = r[i] - l[i] +1. ans[len] = max(ans[len], a[i]) 1 #include 2 using namespace std; 3 const int ... 阅读全文

posted @ 2015-12-05 23:36 yohaha 阅读(178) 评论(0) 推荐(0)

codeforces 377B Preparing for the Contest 二分+优先队列
摘要:题目链接给你m个bug, 每个bug都有一个复杂度。n个人, 每个人有两个值, 一个是能力值, 当能力值>=bug的复杂度时才可以修复这个bug, 另一个是雇佣他需要的钱,掏一次钱就可以永久雇佣。 然后给你一个金钱总额, 让你在最短的时间的修复这些bugs, 并且给出每个bug是由谁修复的, 一个人... 阅读全文

posted @ 2015-12-05 18:52 yohaha 阅读(314) 评论(0) 推荐(0)

hdu 4902 Nice boat 线段树
摘要:题目链接给n个数, 两种操作, 第一种是将区间内的数变成x, 第二种是将区间内大于x的数变为gcd(x, a[i])。开三个数组, 一个记录区间最大值, 这样可以判断是否更新这一区间, 一个lazy标记, 还有一个num数组记录这一区间的数是否相同, 如果不同则为-1。然后暴力更新就可以 1 #i... 阅读全文

posted @ 2015-12-04 15:24 yohaha 阅读(157) 评论(0) 推荐(0)

poj 2688 Cleaning Robot bfs+dfs
摘要:题目链接首先bfs, 求出两两之间的距离, 然后dfs就可以。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 1... 阅读全文

posted @ 2015-12-04 14:24 yohaha 阅读(246) 评论(0) 推荐(0)

poj 2584 T-Shirt Gumbo 网络流
摘要:题目链接有5种T-shirt, n个人, 每个人可以接受某些种T-shirt, 每种T-shirt的数量已知, 问每个人能否都穿上自己能接受的T-shirt。源点向每种T-shirt连边, 权值为个数。 将人拆成两个点u和u', T-shirt向u连边, 权值为1, u向u'连边, 权值为1, u'... 阅读全文

posted @ 2015-12-04 11:00 yohaha 阅读(226) 评论(0) 推荐(0)

hdu 4292 Food 网络流
摘要:题目链接给你f种食物, 以及每种食物的个数, d种饮料, 以及个数, n个人, 以及每个人可以接受的食物种类和饮料种类。 每个人必须得到一种食物和一种饮料。 问最后得到满足的人的个数。因为一个人只能得到一种食物, 所以把人拆成两个点, 之间连一条权值为1的边。 建一个源点s, 汇点t, 每种食物向源... 阅读全文

posted @ 2015-12-04 10:04 yohaha 阅读(199) 评论(0) 推荐(0)

hdu 4289 Control 网络流
摘要:题目链接给出一些点, 每个点有一个权值, 给出一些边, 起点以及终点, 去掉一些点使得起点和终点不连通, 求最小的val。拆点, 把一个点s拆成s和s', 之间建一条边, 权值为点权。 对于一条边, 建边, 权值为inf, 跑一遍最大流。 1 #include 2 using namespa... 阅读全文

posted @ 2015-12-03 23:10 yohaha 阅读(373) 评论(0) 推荐(0)

zoj 2587 Unique Attack 最小割判定
摘要:题目链接让你判断最小割是否唯一。判断方法是, 先求一遍最大流, 然后从源点dfs一次, 搜索未饱和边的数目。 从汇点dfs一次, 同样也是搜索未饱和边的数目, 看总和是否等于n。 如果等于n那么唯一。具体可以看这里,http://www.cnblogs.com/Lyush/archive/2013/... 阅读全文

posted @ 2015-12-03 20:16 yohaha 阅读(173) 评论(0) 推荐(0)

poj 3469 Dual Core CPU 最小割
摘要:题目链接好裸的题.......两个cpu分别作为源点和汇点, 每个cpu向元件连边, 权值为题目所给的两个值, 如果两个元件之间有关系, 就在这两个元件之间连边, 权值为消耗,这里的边应该是双向边。 1 #include 2 using namespace std; 3 #define mem(a)... 阅读全文

posted @ 2015-12-03 19:36 yohaha 阅读(174) 评论(0) 推荐(0)

codeforces 540D 概率dp
摘要:传送门大概可以这样理解, 一开始有r个石头, p个布, s个剪刀, 每一天有其中的两个相遇, 如果两个是相同的种类, 什么都不会发生, 否则的话有一个会挂掉, 问最后每一种生存的概率。dp[i][j][k]表示到达i个石头, j个布, s个剪刀的概率, 那么初始状态dp[r][p][s] = 1。 ... 阅读全文

posted @ 2015-12-03 14:41 yohaha 阅读(253) 评论(0) 推荐(0)

hdu 4027 Can you answer these queries? 线段树
摘要:题目链接给出n个数m个操作, 每个操作有两种, 1是查询[L, R]的和, 2是将[L, R]之间的数变为他们的平方根, 4变成2, 9变成3, 如果不是整数就向下取整, 数据 2 using namespace std; 3 #define ll long long 4 #define lson ... 阅读全文

posted @ 2015-12-03 12:46 yohaha 阅读(162) 评论(0) 推荐(0)

hdu 4405 Aeroplane chess 概率dp
摘要:传送门给0-n这么多个格子, 初始在0, 然后扔骰子, 扔到几就走几步, 其中有些格子是相连的, 比如2,5相连, 那么到2就可以直接飞到5。 问到n处的期望步数。首先肯定是倒着推的, dp[n] = 0. 然后如果x, y(x 2 using namespace std; 3 #define me... 阅读全文

posted @ 2015-12-03 11:56 yohaha 阅读(172) 评论(0) 推荐(0)

poj 3071 Football 概率dp
摘要:点我看题这个题的状态转移方程很好写, 然而他的对手并不是那么好找......如果把编号从0开始的话, 就可以发现, 一个队伍的第i轮的对手, 是二进制里面第i位和它相反, 并且高位和它完全相同的数。知道了这个这题就没难度了(尽管我没找到这个关系 1 #include 2 using namespac... 阅读全文

posted @ 2015-12-02 21:13 yohaha 阅读(132) 评论(0) 推荐(0)

poj 2151 Check the difficulty of problems 概率dp
摘要:点我看题n个队伍, m道题, 给出所有队伍可以做出每道题的概率, 求所有队伍做出的题数>=1并且冠军队伍做出的题数必须大于等于k。首先, dp[i][j][k]表示第i支队伍在前j道题里做出k道题的概率, dp[i][j][k] = dp[i][j-1][k-1]*p[i][j]+dp[i][j-1... 阅读全文

posted @ 2015-12-02 20:29 yohaha 阅读(122) 评论(0) 推荐(0)

codeforces 455C 并查集
摘要:传送门给n个点, 初始有m条边, q个操作。每个操作有两种, 1是询问点x所在的连通块内的最长路径, 就是树的直径。 2是将x, y所在的两个连通块连接起来,并且要合并之后的树的直径最小,如果属于同一个连通块就忽视这个操作。先dfs出每个连通块的初始直径, 然后合并的话就是len[x] = max(... 阅读全文

posted @ 2015-12-02 18:48 yohaha 阅读(188) 评论(0) 推荐(0)

poj 3501 Escape from Enemy Territory 预处理+二分+bfs
摘要:传送门给一个起点一个终点, 给出整个地图的宽和高, 给出n个敌人的坐标。 让你找到一条路径, 这条路径上的点距离所有敌人的距离都最短, 输出最短距离。首先预处理出来地图上的所有点到敌人的最短距离, 然后二分距离, bfs就可以。tle了好多次, 到网上搜题解, 看到别人是先把敌人的坐标都存到数组里最... 阅读全文

posted @ 2015-12-02 12:43 yohaha 阅读(244) 评论(0) 推荐(0)

POJ 2110 Mountain Walking 二分+bfs
摘要:传送门昨天看到这个题还以为是个脑残的dp, 然而脑残的是我。题目意思就是从左上角走到右下角, 设x为路径上的最大值-最小值, 求x的最小值。二分x, 对于每一个x, 枚举下界lower, lower从0开始枚举, 每一次bfs的时候, 如果一个点的值小于lower或者大于lower+x, 那么就不走... 阅读全文

posted @ 2015-12-02 11:08 yohaha 阅读(203) 评论(0) 推荐(0)

poj1637 Sightseeing tour 混合图欧拉回路判定
摘要:传送门第一次做这种题, 尽管ac了但是完全不知道为什么这么做。题目就是给一些边, 有向边与无向边混合, 问你是否存在欧拉回路。做法是先对每个点求入度和出度, 如果一条边是无向边, 就随便指定一个方向, 然后连一条边, 权值为1。 最后统计入度出度, 如果一个点的(入度-出度)%2==1, 就说明... 阅读全文

posted @ 2015-12-01 21:40 yohaha 阅读(151) 评论(0) 推荐(0)

zoj 2071 Technology Trader 最大权闭合子图
摘要:传送门和上一题一样, 也是一个最大权闭合子图。不过建图好麻烦的感觉 写了好久。源点和原材料连边, 权值为val。 汇点和产品连边, 权值为val。 产品与和它有关系的材料连边, 权值inf。 最后跑一边网络流, 满流的话是没利润的, 输出结果是利润和-最大流。 1 #include 2 usin... 阅读全文

posted @ 2015-12-01 18:20 yohaha 阅读(159) 评论(0) 推荐(0)

TJU 2944 Mussy Paper 最大权闭合子图
摘要:传送门给你一些东西, 每个东西有一个值,有正有负。 在给一些关系, 选了其中一个物品, 和他有关系的也必须全都选上, 关系是单向的。 问最后的最大价值是多少, 如果小于0输出“ **** ”(记不得是什么了。网络流, 如果一个东西的价值是正的, 源点向它连边, 权值为val; 如果是负的, 汇点向... 阅读全文

posted @ 2015-12-01 13:36 yohaha 阅读(198) 评论(0) 推荐(0)

poj 1222 EXTENDED LIGHTS OUT 高斯消元
摘要:传送门题目就是给你一些灯, 点击一个灯, 就会改变它自身和它四周的所有的灯的状态。 给你所有灯的初始状态, 要你输出所有灯的点击情况, 1代表点击, 0代表不点击。 1 #include 2 using namespace std; 3 #define mem(a) memset(a, 0, siz... 阅读全文

posted @ 2015-12-01 12:01 yohaha 阅读(156) 评论(0) 推荐(0)

codeforces 383C Propagating tree 线段树
摘要:http://codeforces.com/problemset/problem/383/C 题目就是说, 给一棵树,将一个节点的值+val, 那么它的子节点都会-val, 子节点的子节点+val........这样类推, 给一系列操作,2是查询一个节点的值, 1是将一个节点的值+val。 首先,< 阅读全文

posted @ 2015-12-01 10:57 yohaha 阅读(206) 评论(0) 推荐(0)

导航