算法
acm算法之旅
谷丘CODER
努力up!up!
展开
-
cf #501 B - Obtaining the String
题意 给两个字符串,通过和后面一个字符对掉顺序,得到第二个字符串和第一个相等,输出对调次数,按顺序输出对调的点#include<iostream>#include<cstdio>#include<cstring>using namespace std;const int maxn=55;char a[maxn],b[maxn];int ch1[...原创 2018-08-01 15:20:59 · 172 阅读 · 0 评论 -
poj1144-uva-315无向图求割点模板
给你一张图,节点数小于100个,保证图联通。询问这张图里有多少割点输入多组测试数据对于每组测试数据的第一行,输入一个整数N,表示一共有N个节点接下来若干行,每行第一个数字u,接下来一些数字vi,表示u和vi之间有边,每行以回车符结尾。每组测试数据以u==0结尾整个输入以N==0结尾这个输入看了好久才看懂割点就是对于连通图中的一个点,如果去掉这个点后,原来的图变成非连...原创 2018-07-31 19:06:18 · 186 阅读 · 0 评论 -
poj3020-二分图匹配-最小路径覆盖
题目链接http://poj.org/problem?id=3020*--代表城市,o--代表空地 给城市安装无线网,一个无线网最多可以覆盖两座城市,问覆盖所有城市最少要用多少无线。公式:,最小路径覆盖=总节点数-最大匹配数;那么接下来需要确认的是,究竟是求 有向二分图的最小路覆盖,还是求 无向二分图的最小路覆盖因为有向和无向是截然不同的计算方法。例如输入...原创 2018-07-31 09:35:09 · 140 阅读 · 0 评论 -
hdu5934-强连通分量-缩点-tarjan
题目链接:https://vjudge.net/problem/541918/origin题意:有n个炸弹,位于(xi,yi),爆炸半径为ri,花费为ci。炸弹爆炸时,在其爆炸范围的炸弹都会被引爆,求最少花费使得所有的炸弹都引爆。如果A能引爆B,那么在A B之间建一条单向边A->B ,然后用Tarjan算法缩点,缩点过程把相连通分量内的那个花费最小的炸弹求出并保存,然后用缩点建立新...原创 2018-07-30 16:20:29 · 172 阅读 · 0 评论 -
hdu-1556-树状数组-差分数组
题目链接http://acm.hdu.edu.cn/showproblem.php?pid=1556这题就是N个气球每次对[a,b]区间的气球涂色,每次询问第i个气球被涂了多少次色。显然朴素的树状数组实现单点修改+区间求和对于这题区间修改+单点查询,思想延续树状数组。加上差分数组的思想很容易知道我们只需要用树状数组维护一个差分数组,每次修改区间[a,b],我们只需要add(C[a]...原创 2018-07-28 10:45:39 · 325 阅读 · 0 评论 -
poj-2481-Cows -树状数组
题目链接http://poj.org/problem?id=2481FJ有n头牛(编号为1~n),每一头牛都有一个测验值[S, E],如果对于牛i和牛j来说,它们的测验值满足下面的条件则证明牛i比牛j强壮:Si<=Sj and Ej<=Ei and Ei-Si>Ej -Sj。现在已知每一头牛的测验值,要求输出每头牛有几头牛比其强壮数组数组右上方存小的,那么我们按照y从大到...原创 2018-07-27 23:17:08 · 125 阅读 · 0 评论 -
hdu-1541-树状数组模板-入门题
题目链接http://acm.hdu.edu.cn/showproblem.php?pid=1541题意:给出一些星星的横坐标和纵坐标,而且星星的纵坐标按非递减排列,如果纵坐标相等,则横坐标按递增排列,任意两颗星星不会重合。如果有n颗星星的横坐标比某颗星星小而且纵坐标不大于那颗星星(即有n颗星星位于那颗星星的左下角或者左边)则此星星的等级为n,最后输出等级为0至n-1的星星的数量。#in...原创 2018-07-27 11:16:00 · 644 阅读 · 0 评论 -
hdu1905Pseudoprime numbers -快速幂,判素数模板
http://acm.hdu.edu.cn/showproblem.php?pid=1905题目大意是这样的,输入p,a,两个数,如果p是素数输出no,如果p不是素数,判断a^p%p==a是否成立,如果成立输出yes,否则输出no#include<stdio.h>#include<string>#include<iostream>#includ...原创 2018-07-26 18:20:24 · 161 阅读 · 0 评论 -
hdu6301- Distinct Values
给定n段区间,要求每段区间内没有重复的数字;构造这样一个序列,使得序列的字典序最小每次使用数字,从set里提取出来再删掉就行了题目地址http://acm.hdu.edu.cn/showproblem.php?pid=6301#include<stdio.h>#include<string>#include<iostream>#inclu...原创 2018-07-26 18:13:33 · 124 阅读 · 0 评论 -
hdu1009FatMouse' Trade贪心结构体sort排
#include<cstdio>#include<string>#include<iostream>#include<algorithm>#include<stdlib.h>using namespace std;const int n=1005;struct anode{ int j,f; double r;//不...原创 2018-05-18 18:49:15 · 124 阅读 · 0 评论 -
HDU1166:敌兵布阵(线段树单点更新)
#include<iostream>#include<cstdio>#include<cstring>using namespace std;const int mx=5e4+10;int node[mx<<2];void build(int l,int r,int rt){ if(l==r) { scanf("%d",&am...原创 2018-05-12 12:39:42 · 99 阅读 · 0 评论 -
POJ 3468 A Simple Problem with Integers(线段树区间修改)
#include<iostream>#include<cstdio>#define ll long long#include<cstring>using namespace std;const int mx=1e5+10;ll sum [mx*4];ll la [mx*4];void pushdown(int rt,int L,int R){...原创 2018-05-12 12:30:26 · 111 阅读 · 0 评论 -
E - Odds and Ends
Where do odds begin, and where do they end? Where does hope emerge, and will they ever break?Given an integer sequencea1, a2, ..., anof lengthn. Decide whether it is possible to divide it into...转载 2018-01-01 12:19:15 · 215 阅读 · 0 评论 -
hdu4082-Hou Yi's secret 找相似三角形
http://acm.hdu.edu.cn/showproblem.php?pid=4082给定n个点判断这些点能组成的三角形中,与同一个三角形相似的三角形的最大个数。注意有可能输入重边,要判断共线#include<iostream>#include<ctime>#include<cmath>#include<cstring>#...原创 2018-08-17 17:51:10 · 125 阅读 · 0 评论 -
poj2337-G - Catenyms -有向图欧拉路径dfs输出
http://poj.org/problem?id=2337给你一组N个单词,现在要你输出这样一组单词序列。该序列包含了所有N个单词,且该序列中的前一个单词的最后一个字母与后一个单词的第一个字母相同。如果存在多个这种首尾相连的序列,就输出字典序最小的那个即可。首先得判断图的连通性,并查集判断1.图连通2.每个点的入度等于出度dfs起点为第一个点或有两个点入度不等于出度,且一个点出...原创 2018-08-17 14:37:35 · 181 阅读 · 0 评论 -
spfa-poj3259-Wormholes
题目链接:http://poj.org/problem?id=3259spfa详解https://blog.csdn.net/xunalove/article/details/70045815题意:t译文:农夫约翰在探索他的许多农场,发现了一些惊人的虫洞。虫洞是很奇特的,因为它是一个单向通道,可让你进入虫洞的前达到目的地!他的N(1≤N≤500)个农场被编号为1..N,之间有M(1≤M...原创 2018-08-16 11:00:48 · 177 阅读 · 0 评论 -
CodeForces - 1020A. New Building for SIS-模拟
题目链接:http://codeforces.com/problemset/problem/1020/AinputCopy3 6 2 3 31 2 1 31 4 3 41 2 2 3给你n个相邻的建筑(从左到右编号1到n),每个建筑有h层,每个建筑的a层到b层中任意一层c层可以花一秒通过连廊直接到隔壁建筑的c层。上下楼1层需要1秒。求q次查询(建筑a,层a)到(建筑b,层b...原创 2018-08-15 16:46:06 · 386 阅读 · 0 评论 -
CodeForces - 1020B. Badge-div2-递推模拟
题目链接:http://codeforces.com/problemset/problem/1020/B题意:从一个人徽章上打洞,他会说栽赃下一个人,然后下一个人的徽章被打洞,依次这样下去,直道某个人徽章有两个洞就结束。输入:32 3 2输出:2 2 3 代表3个学生,第一名栽赃给第2个学生,第二名栽赃第3个,第三名栽赃给第2个老师首先打洞1->2->...原创 2018-08-15 14:58:33 · 214 阅读 · 0 评论 -
poj1794-最短路-dijkstra
Heavy Transportationhttp://poj.org/problem?id=1797题目大意:有n个城市,m条道路,在每条道路上有一个承载量,现在要求从1到n城市最大承载量,而最大承载量就是从城市1到城市n所有通路上的最大承载量解题思路:其实这个求最大边可以近似于求最短路,只要修改下找最短路更新的条件就可以了#include<iostream>...原创 2018-08-15 10:10:21 · 429 阅读 · 2 评论 -
STL-set-stringstream分割字符-uva10815
题意:输入一个文本。找出所有不同的单词,按字典序从小到大输出Sample InputAdventures in DisneylandTwo blondes were going to Disneyland when they came to a fork in theroad. The sign read: "Disneyland Left."So they went home.Sa...原创 2018-08-13 15:54:03 · 322 阅读 · 0 评论 -
STL-vector详解-uva-101
题目:给你n个方块,有四种操作: 1.move a onto b,把a和b上面的方块都放回原来位置,然后把a放到b上面; 2.move a over b,把a上面的放回原处,然后把a放在b所在的方块堆的上面; 3.pile a onto b,把b上面的放回原来位置,然后把a和a上面的方块整体放到b上面; ...原创 2018-08-13 12:00:24 · 160 阅读 · 0 评论 -
STL-set-详解-uva10474
大理石在哪儿现有N个大理石,每个大理石上写了一个非负整数、首先把各数从小到大排序然后回答Q个问题。每个问题问是否有一个大理石写着某个整数x,如果是,还要回答哪个大理石上写着x。排序后的大理石从左到右编号为1~N。(在样例中,为了节约篇幅,所有大理石的数合并到一行,所有问题也合并到一行。)样例输入:4 12 3 5 155 21 3 3 3 12 3样例输出:CASE# 1...原创 2018-08-13 10:29:00 · 127 阅读 · 0 评论 -
poj-2007-凸包-极角排序
题目链接http://poj.org/problem?id=2007题目大意:乱序给出凸多边形的顶点坐标,要求按逆时针顺序输出各顶点。给的第一个点一定是(0,0),没有其他点在坐标轴上,没有三点共线的情况。#include<iostream>#include<cstdio>#include<cstring>#include<algorith...原创 2018-08-07 23:32:44 · 181 阅读 · 0 评论 -
Thinking-Bear magic(几何)
题目链接https://www.nowcoder.com/acm/contest/163/D输入n代表n边形,a为边长,l所以他想一个好主意,连接每条边的中点,并得到一个新的N的正多边形。想要一个正多边形(N),和多边形面积不超过L。链接:https://www.nowcoder.com/acm/contest/163/D来源:牛客网为了成为一个神奇的女孩,Th...原创 2018-08-07 23:26:03 · 181 阅读 · 0 评论 -
poj-1113 凸包模板
题目链接http://poj.org/problem?id=1113很久以前有一个吝啬的国王,他命令自己的首席建筑师围绕城堡建造一圈围墙。这位国王十分贪婪,所以他绝对不会听取建筑师的意见去建造那种外观靓丽还有很多高塔的豪华围墙,他只想用最少的石头和劳工完成;并且国王觉得围墙与城堡的距离不能小于一个确定的值。如果建筑师建造围墙时消耗的资源比国王的预算多,那他立刻就要人头落地。现在国王向建筑师要求...原创 2018-08-05 21:59:13 · 595 阅读 · 0 评论 -
B - Segment Occurrences-kmp算法模板
cf 502 div2 题目链接http://codeforces.com/problemset/problem/1016/B题意 第一行第一个数字主串的长度,第二个是子串长度,第三个数字代表几次询问例如 1-3 在主串中子串出现的次数kmp模板题具体kmp算法详见https://blog.csdn.net/u010232171/article/details/41945605...原创 2018-08-05 21:15:37 · 256 阅读 · 1 评论 -
poj-3268-最短路-dijkstra算法
题目链接http://poj.org/problem?id=3268有编号为1-N的牛,它们之间存在一些单向的路径。给定一头牛的编号,其他牛要去拜访它并且拜访完之后要返回自己原来的位置,求这些牛中所花的最长的来回时间是多少。每头牛返回的最短时间很简单就可以算出来,这相当于从目标牛为起点求单源最短路径。但每头牛出发到目标牛的最短时间无法直接算出来,稍微转换一下,发现这个最短时间其实可以通过把...原创 2018-08-03 16:44:06 · 478 阅读 · 0 评论 -
poj1125-最短路-floyd
题目链接http://poj.org/problem?id=1125首先,题目可能有多组测试数据,每个测试数据的第一行为经纪人数量N(当N=0时,输入数据结束),然后接下来N行描述第i(1<=i<=N)个经纪人与其他经纪人的关系(教你如何画图)。每行开头数字M为该行对应的经纪人有多少个经纪人朋友(该节点的出度,可以为0),然后紧接着M对整数,每对整数表示成a,b,则表明该经...原创 2018-08-03 10:04:32 · 111 阅读 · 0 评论 -
cf-#501 div3 C. Songs Compression
题目链接:http://codeforces.com/contest/1015/problem/C就是输入n和m,m为存储空间然后n行a和b a大于b每一行的a可以压缩为b的大小求最少只需要压缩几个,使得m可以存下所有数据如果全部压缩都不满足,就输出-1#include <stdio.h>#include <iostream>#includ...原创 2018-08-02 19:38:54 · 235 阅读 · 0 评论 -
最短路-hdu 2544
题目链接http://acm.hdu.edu.cn/showproblem.php?pid=2544水题,最短路floydinf开小了会wa#include <stdio.h>#include <iostream>#include <string.h>#include <algorithm>#include <map>...原创 2018-08-02 18:04:20 · 104 阅读 · 0 评论 -
HDU-4738-无向图求桥
题目链接http://acm.hdu.edu.cn/showproblem.php?pid=4738这题巨坑。。题意:曹操赤壁之战后卷土重来,他在n个小岛之间建立了m座桥。现在周瑜只有一颗炮弹,他只能炸毁一座桥使得这些岛屿不再连通。每座桥上都可能会有士兵把手,如果想安放炸药那么派出的士兵就不得少于桥上的士兵。求周瑜最少需要多少士兵。首先判断图是否连通,不连通则不需要去炸桥,输出0...原创 2018-08-02 15:46:25 · 1021 阅读 · 0 评论 -
uva 796-无向图求桥(割边)
题意-求桥桥(割边): 无向连通图中,如果删除某条边后,图变成不连通了,则该边为桥。题目输入第一行是点的个数n;下面n行第一个是点,括号里是与他连接的点个数,后面是与他连接的点在求割点的基础上吗,假如一个边没有重边(重边 1-2, 1->2 有两次,那么 1->2 就是有两条边了,那么 1->2就不算是桥了)。所以要注意重边的处理注意 建图的时候是从1开始,题...原创 2018-08-02 09:34:27 · 200 阅读 · 0 评论 -
容斥C - How many integers can you find HDU - 1796
题目链接http://acm.hdu.edu.cn/showproblem.php?pid=1796题意:给定一个数n,数列m个数,求这小于n的数中,有多少个数满足能被这m个数中任意一个数整除。递归容斥,把每种情况算出, 然后容斥一下,这里 注意 例如2 3 6,不能直接把他们相乘,他们的 最小公倍数为12,需要用gcd一下#include<iostream>#incl...原创 2018-08-29 14:48:08 · 109 阅读 · 0 评论 -
电灯泡-容斥
题目链接http://120.78.128.11/Problem.jsp?pid=2332容斥原理:AUBUC=A+B+C-AB-AC-BC+ABC输入T表示T组测试数据(1<=T<=100)接下来T组测试数据每组第一行一个n表示灯泡个数(1<=n<=10^9)第二行三个数a,b,c表示V_Dragon每次选择的数(1<=a,b,c<=10^...原创 2018-08-28 19:39:16 · 284 阅读 · 0 评论 -
HDU - 1025 -最长上升子序列nlogn
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1025刚开始题目理解错了,第一个数字是a数组下标,第二个是数组的值,nlogn算法写法用到了二分查找还有这题输出很坑,一个道路是是road,两个以上是roads#include<iostream>#include<cstdio>#include<cstri...原创 2018-08-28 11:23:29 · 526 阅读 · 0 评论 -
基础动归G - Longest Ordered Subsequence POJ - 2533
题目链接http://poj.org/problem?id=2533求最长上升子序列#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<math.h>#include<set>#include<...原创 2018-08-27 15:22:57 · 109 阅读 · 0 评论 -
网络赛1-D - Find Integer HDU - 6441
题目链接http://acm.hdu.edu.cn/showproblem.php?pid=6441费马定理,大于2是无解的n=2时当a是偶数时,b与c相差2;当a是奇数时,b与c相差1;在判断n=1时的情况#include<iostream>#include<cstdio>#include<cstring>#include<...原创 2018-08-27 11:14:59 · 137 阅读 · 0 评论 -
John's trip POJ - 1041-无向图欧拉回路-路径输出
题目链接:http://poj.org/problem?id=1041给你一个无向图,数据格式如点x 点y 边Z,表示由x点和y点构成了Z边。现在要问你该图中是否存在欧拉回路,如果存在,输出那条欧拉回路(输入按序走过的所有边标号)。且题目中保证了该无向图是连通的。这里注意dfs中无向图中遍历需要edge[i^1].flag=true;最后把edge[ans[i]].id所对应的边编号输...原创 2018-08-24 18:58:01 · 278 阅读 · 0 评论 -
Watchcow POJ - 2230-欧拉回路dfs输出
题目链接http://poj.org/problem?id=2230题目的意思是跑两边欧拉回路,方向相反,输出路径其实可以看作有向图,dfs一下,把每条边都走过去结束然后输出,之前想太复杂了#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>...原创 2018-08-24 15:17:18 · 221 阅读 · 0 评论 -
poj2513-字典树-欧拉路径
题目链接:http://poj.org/problem?id=2513题目大意:给一些木棍,两端都有颜色,只有两根对应的端点颜色相同才能相接,问能不能把它们接成一根木棍无向图存在欧拉路的充要条件为:① 图是连通的;② 所有节点的度为偶数,或者有且只有两个度为奇数的节点。图的连通可以利用并查集去判断。这题数据比较坑,输入空数据的时候,输出possible。数...原创 2018-08-24 11:45:10 · 177 阅读 · 0 评论