
poj
YYyyCCCcccBb
觉得为时已晚的时候,恰恰是最早的时候。
展开
-
poj1804-Brainman
听说有笔试题。复习了下逆序对。#include <iostream>#include <stdio.h>#include <cstring>#include <string>using namespace std;int a[1005];int x[1005];int ans=0;void Union(int l,int r){ ...原创 2018-03-24 14:43:22 · 253 阅读 · 0 评论 -
poj1716 Integer Intervals 差分约束
题意: A->B区间 至少有两个值,询问1-》10000最少有几个值思路:裸差分约束,注意a从0起,所以点都增一#include #include #include #include #include #include #include #include using namespace std;const int maxn=10005;typedef lo原创 2017-04-11 20:41:38 · 328 阅读 · 0 评论 -
poj2983-Is the Information Reliable?(差分约束判正环)
题意:上有n个点,给出m条信息,若为P则表示点A在点B的北方X米,若为V则表示A在B的北方。判断给出的信息是否合法思路:对于不等式建立边的条件, P: a-b=x --> a-b>=x & ( a-bb-a>=-x ) v ; a-b>=1#include #include #include #include #include #include原创 2017-04-09 13:29:29 · 424 阅读 · 0 评论 -
POJ 2528 Mayor's posters+zoj 1610 Count the Colors(数组记录)
思路:对于线段树区间覆盖的这种题。。我觉得我的办法也挺好,而且如果查询次数更多的话,我觉得线段树也不一定能过,这个办法只要n在10^5以下。。感觉10^5会死里。我觉得是可以过目前至于到10^3 10^4poj 2528#include #include #include using namespace std;int wall[10000001];int l[10005原创 2017-03-13 16:09:07 · 253 阅读 · 0 评论 -
poj3264-Balanced Lineup(点更新,区间最值)
题意:给出每个位置奶牛高度,求出l,r这个区间段最高牛和最低的牛的差值思路:线段树维护最值#include #include #include #include using namespace std;const int maxn= 50005;const int inf=0x3f3f3f3f;int a[maxn];struct node{ in原创 2017-03-13 13:56:13 · 273 阅读 · 0 评论 -
Network POJ - 1144 无向图找割点tarjan
题意: 给出n个点,每组第一个数据是 u,之后连续若干个点 v 建立u->v边, v->u边,询问有几个割点。思路:tarjan算法找割点,看了一天,才改懂模板!详情看注释#include #include #include #include #include using namespace std;const int maxn=100005;vector vec原创 2017-03-27 16:13:23 · 369 阅读 · 0 评论 -
POJ-1273 Drainage Ditches
题意:n个河流,m个点,询问从1->m最大的流量是多少思路:网络流基础知识,http://www.cnblogs.com/luweiseu/archive/2012/07/14/2591573.html去这个看吧,写的真够好。然后就是。。。板子#include #include #include#include using namespace std;const i原创 2017-01-22 12:54:04 · 229 阅读 · 0 评论 -
POJ2282:The Counting Problem找规律
题意:统计数字0-9的数量思路:找规律。详情见 51nod-1042 数字0-9的数量#include #include using namespace std;long long ans[10];void solve(long long n,long long k,int op){ long long num=n; long lo原创 2016-12-20 20:24:46 · 379 阅读 · 0 评论 -
poj3286 How many 0's?
题意:统计a->b直接所有数字中0的个数总和思路:找规律。详情见 51nod-1042 数字0-9的数量#include #include using namespace std;long long ans=0;void solve(long long n,int op){ long long num=n; long long cur=0;原创 2016-12-20 20:23:32 · 307 阅读 · 0 评论 -
POJ-1942-Paths on a Grid
题意:n*m的网格,只能向上和向右走。询问多少种走法 从左下走到右上思路:排列组合PS:为什么注释里的内容拆开写就WA了?#include #include #include #include #include unsigned long long n,m;using namespace std;int main(){ while(cin>>n>>m原创 2016-12-23 15:51:43 · 335 阅读 · 0 评论 -
POJ-2356 Find a multiple(鸽巢原理)题目数据太垃圾了!!
题意:在给出的N个数字中找出M个数字和为N的整数倍思路:在离散数学中鸽巢原理大概意思是,有N+1个数字放在N个盒子里必定有一个盒子有2个或者2个以上个数字..本题如果sum[I] %n==0,那么这组数字就满足条件,如果没有一组数字是满足条件的,那么我们考虑多个数字的组合如果前i个数字和 与前j个数字和%n相等, 那么 第i+1~j个数字的和必定是n的k倍先给个AC的,思路原创 2016-12-23 15:13:55 · 624 阅读 · 0 评论 -
CodeForces 450B Jzzhu and Sequences
思路:f1=x, f2=y,f3=y-x,f4=-x,f5=-y,f6=x-y循环规律#include #include #include #include #include using namespace std;const int mod=1e9+7;int main(){ int n,m; cin>>n>>m; int x;原创 2017-04-05 13:29:44 · 218 阅读 · 0 评论 -
poj3020-Antenna Placement-最小点覆盖
题意: 每个雷达可以最多覆盖相邻两个城市* ,询问最少防止几个雷达思路:这种类型在 二分图建图方法这篇文章中有讲。因为只能覆盖2个,而这个2 便是建图的依据,枚举点的位置,是否可以同相邻四点建立边, 之后找出最大匹配。雷达最少的数量,相当于一个点, 就是说用最少的点覆盖所有的城市, 便是一个最小点覆盖的问题:最小点覆盖= 总点数 - 最大匹配。#include#in原创 2017-04-20 12:04:45 · 290 阅读 · 0 评论 -
POJ-3660-Cow Contest
询问多少个奶牛可以确定排名传递闭包#include#include#include#include#include #includeusing namespace std;const int maxn=1505;int n,m;int g[maxn][maxn];int vis[maxn];void floyd(){ for(int k=1; k<原创 2017-04-22 10:39:37 · 231 阅读 · 0 评论 -
Atlantis HDU - 1542 (线段树扫描线-矩阵面积和)
题意:给出矩阵的左下角点和右上角点,询问这些矩阵构成的图里,覆盖的面积和,重复覆盖的只算一次。理解:这是一个模板题,今天也是才弄懂写一下自己对他的理解。网上有一个图http://blog.youkuaiyun.com/wlxsq/article/details/47254571#。 画的很不错。个人感觉他与普通线段树的区别在于,这颗线段树的l~r记载的是纵坐标的区间,x记载了再当前位置 最原创 2017-05-13 15:47:13 · 374 阅读 · 0 评论 -
Feed the dogs POJ - 2761 (主席树第K大)
题意:找l~r第k大的数#include #include #include #include using namespace std;const int maxn=100001;int a[maxn];int root[maxn*20];struct node{ int lc,rc,num;}tree[maxn*20];int cnt,rnu,now,num原创 2017-07-19 15:33:39 · 306 阅读 · 0 评论 -
最大团模板
#include #include #define N 1010 /* 最大团 = 补图G的最大独立集数 ———>最大独立集数 = 补图G'最大团 */ //最大团模板 bool a[N][N];//a为图的邻接表(从1开始) int ans, cnt[N], group[N], n, m, vis[N];//ans表示最大团,cnt[N]表示当前最大团的节点数,g原创 2017-10-03 14:12:54 · 1004 阅读 · 0 评论 -
POJ 3744 Scout YYF I(概率Dp)
题意:给出走一步的概率,和走两步的概率,询问顺利通过所有格子,图中不踩到坏格子上的概率思路:DP[i]=(1-p) DP[i-2] + p*Dp[i-1] 很好推,但是范围大了不能暴力推, 拿矩阵分开逐步优化下。DP【i】表示顺利通过i格子的概率。 对于每一个雷区,把它和左侧看为整体#include #include #include #include #include原创 2017-09-08 12:46:18 · 294 阅读 · 0 评论 -
POJ 2104 K-th Number(可持久化线段树-求第K大)
思路:建立一个可持续化线段树,每次用一个新节点,接收其新的状态。先维护出一个从小到大,无重复的线段树。之后每次插入都是一个新的节点,(网上有图)。代码网上学的 #include#include#include#includeusing namespace std;const int maxn=100010;struct node{ int lc,rc,l,r,num,原创 2017-07-17 16:19:37 · 422 阅读 · 0 评论 -
POJ 1470 Closest Common Ancestors
题意: 给出连接方式,询问作为公共祖先的点的个数注意:输入格式,之前写的输入格式,也能过样例,然而WA了,在网上找了个输入格式就过了。#include #include #include #include using namespace std;const int maxn=10005;int fa[maxn];int n;int ans[maxn];void原创 2017-07-12 13:49:41 · 222 阅读 · 0 评论 -
POJ 3237 Tree(树链剖分-线段树点更新-区间更新-区间最值查询-入边)
题意:给出若干个操作,询问路径最大值。思路:裸树链剖分,只不过需要记录最大值和最小值,当翻转的时候可以标记一下,然后互换最大值和最小值。PS:WA了5个小时,就因为线段树函数太多。。有个函数忘记释放标记了。真是TM的智障#include #include #include #include using namespace std;const int max原创 2017-05-18 15:49:26 · 440 阅读 · 0 评论 -
POJ 2763 Housewife Wind(树链剖分+线段树点更新-区间查询+入边)
题意:给出顶点,边,以及起始点。对于0操作询问S点到a的距离1操作更改给出第a条边的权值为b注意:每次0操作后s变为a思路:树链剖分,只不过此题是用线段树的点更新,区间查询,而树链剖分的部分也做了部分更改#include #include #include #include using namespace std;const int maxn = 10原创 2017-05-17 21:26:33 · 403 阅读 · 0 评论 -
Nearest Common Ancestors POJ - 1330 (LCA)
模板题#include #include #include #include using namespace std;const int maxn=10005;int fa[maxn*4];void solve(int u,int v){ int fv=v; while(fa[u]!=u) { fv=v; w原创 2017-06-07 15:56:48 · 228 阅读 · 0 评论 -
poj3669-Meteor Shower
思路:把图标记后有条件的bfs#include #include #include #include #include #include using namespace std;const int inf=0x3f3f3f3f;int mp[405][405];int vis[405][405];int n,m;int data[4][2]={0,1,0,-1,1,0原创 2017-05-25 16:25:03 · 333 阅读 · 0 评论 -
POJ3273-Monthly Expense
题意:把给定的n天分为m份,要求最大的那份和最小。思路:二分注意:下界。如果直接下界为0还没有特判在m=n的时候会炸#include #include #include #include #include int n,m;using namespace std;long long a[100005];int solve(long long num)原创 2016-12-22 20:47:59 · 261 阅读 · 0 评论 -
SPFa-POJ3259-Wormholes
题意:有虫洞可以时间回溯,从x,到y, 有土地可以从x,到y花费w时间。询问是否可以从某点进去的时间在从这个点出来的时间之后思路:判负环#include #include #include #include #include using namespace std;#define maxn 100000#define inf 0x3f3f3f3fstruct原创 2016-11-25 15:33:40 · 260 阅读 · 0 评论 -
poj3159-Candies差分约束-spfa+栈
题意:飞天鼠是班长有好多糖果,有个管闲事的是1号,飞天鼠是n号有m个输入a,b,c表示A可以忍受B比他多拿C个糖果问最终飞天鼠会比1号老鼠多拿多少结果思路:一开始我还以为是个问最多比最少的多重点问题,说什么也考虑不过去,然而看了下网上题意才明白只是一个单点的问题。之后写了一个spfa 的deque的优化。然而我突然发现,这deque也算个优化?偶尔比spfa裸的时间更长,缩原创 2016-11-26 16:38:27 · 321 阅读 · 0 评论 -
POJ 1679-The Unique MST(次小生成树)
题意:找出在给出的图中是否存在两个最小生成树,如果有输出不独立,否则如果只有一个就输出最小生成树的权值。模板题:最小生成树的模板#include #include #include #include using namespace std;#define maxn 111const int inf =0x3f3f3f3f;int maxx[maxn][maxn];原创 2016-11-08 16:57:05 · 377 阅读 · 0 评论 -
POJ-3723-Conscription最大生成树
题意:男生女生有关系,如果以此关系雇佣这对男女就能少花val元钱。问最少能用多少元把他们都雇佣(注意每次减价对于一个人来说只能凭借一种关系作用)思路:最大生成树,尽可能的减少花费数组别开小了#include #include #include #include #include using namespace std;int father[20005];typ原创 2016-11-07 19:30:49 · 266 阅读 · 0 评论 -
(枚举)dfs-POJ 3279Fliptile (详)
题意:给出棋盘,问最少按几步,按那几个,可以把所有的格子都变为0状态,并且输出第一次写一道题用了两个晚上。网上的代码实在是太难看了。代码里有详细注释。大体思路:这个格子翻不翻取决与上面的格子,而上面的格子又受到之前的影响,个人感觉有些动态规划的意思。#include#include#include #define inf 99999999using namesp原创 2016-10-26 19:12:28 · 501 阅读 · 0 评论 -
最小生成树-POJ 1258 Agri-Net
题意:给出的矩阵,找出一条最小生成树。模板题不多说了。注意别忘记初始化。多组数据。WA了5发才发现。#include #include #include using namespace std;int mp[105][105];int n;int dis[105 ];int vis[105];int inf=9999999;void prim(int cur){原创 2016-11-06 20:11:15 · 355 阅读 · 0 评论 -
bfs+dfs- poj2688-Cleaning Robot
题意:清洁机器人,在o位置 发现X是障碍物, *是垃圾。每次机器人可以清扫与其上下左右相邻的格子,问最少多少步可以清理完毕。思路:比赛的时候不会做。之后在网上搜了下,给出其中一种简单思路:对于每个 o * 先把他们记录在POINT中,并且O为 0号其他CNT依次编号。对于每次BFS,扫描一个点在图中到达所有点的距离。并且记录。如果有点不能到达另一点,-1输出对于已经将距离原创 2016-10-25 17:09:59 · 1013 阅读 · 0 评论 -
dfs-poj-1321-棋盘问题
思路:八皇后问题变形,只是有可能当前这一排一个棋子都不加。所以需要dfs下一行#include #include #include using namespace std;int n,k;char mp[10][10];int vis[10][10];int flagx[10];int flagy[10];int sum=0;void dfs(int x,int re原创 2016-10-14 09:56:42 · 241 阅读 · 0 评论 -
dfs-POJ-1014-Dividing
题意:给定权值1~6。给定1~6权值的个数。问是否能平分。思路:这题。。绝对是个多重背包问题。。然而为什么非要写DFS呢!! 往上第一的那个dfs是不是有点坑人。。正着写和反着写思路不一样,结果一样。。正着写都爆栈了!反着写的。。#include #include #include #include using namespace std;int a[10];in原创 2016-10-24 20:16:04 · 331 阅读 · 0 评论 -
POJ-dfs-2676-Sudoku
题意:数独游戏。思路:在每次分割区域后,查询是否满足要求。#include #include #include using namespace std;int row[15][15];int col[15][15];int some[15][15];char save[15][15];int mp[15][15];int over;void Prin()原创 2016-10-24 12:49:16 · 363 阅读 · 0 评论 -
poj2251-bfs- Dungeon Master
题意:立体图形,走迷宫,S到E思路:模板bfs。标记。。标记。。标记。。#include #include #include #include using namespace std;struct node{ int x,y ,z,step;};queue s;char mp[35][35][35];int vis[35][35][35];int a原创 2016-10-24 12:47:36 · 325 阅读 · 0 评论 -
poj-dfs-2531Network Saboteur
题意:把矩阵的点分为两部分,使得这两部分的权值和最大思路:将所有点放在一起,再重新组合#include #include #include using namespace std;int mp[25][25];int vis[25];int dis[25];int sum=0;int ans=0;int n;void dfs(int x,int len)原创 2016-10-24 12:46:05 · 327 阅读 · 0 评论 -
01分组背包-poj 3211 Washing Clothes
题意:两个人洗衣服, 有M种颜色的衣服共N件, 要求两人只能同时洗相同颜色的衣服, 求洗衣服的最短时间。 思路:一开始以为是个贪心,WA了。搜了下发现是个01背包分组问题:将衣服按种类分配好之后,既然是要求洗衣时间尽量少,每个人按每种颜色衣服的一半的时间来洗。转化为背包问题:种类: 某种颜色衣服个数价值: 所花时间花费: 所花时间#include原创 2016-10-06 14:12:50 · 359 阅读 · 0 评论 -
poj2367-Genealogical tree
题意:给出第i行的孩子标号,构成一个族谱,在族谱的最上端话语权就高,问从大到小输出思路:拓补排序,用图的边维护关系,每次找入度为0的点,然后重新维护关系#include #include #include using namespace std;int mp[105][105];int vis[105];int in[105];int ans[105];int n;原创 2016-11-13 09:35:26 · 298 阅读 · 0 评论 -
poj-1094Sorting It All Out
题意:给出关系,询问当可以确定(关系错误,关系正确,无法判断)时候,进行按要求输出思路:拓补排序,注意有环的情况,如最后的注释代码是copy的自己写的时候总是处理不好环,下次按着这个写#include#include#include#include #include using namespace std;int n,m,cnt,f,arr[26],map原创 2016-11-13 20:37:11 · 261 阅读 · 0 评论