- 博客(37)
- 资源 (4)
- 收藏
- 关注
原创 CodeForces 339B (贪心模拟)
题目大意:有n个数组成数环,有人在1点,给定m个数,代表在1处的人必须顺时针都到达这些点,的最少步数。找到数与数间的关心,就可以利用其特征进行求解。#include#include#include#include#include#include#include#include#define ll __int64#define inf 0x3f3f3f3fusin
2015-10-31 22:50:19 1087
原创 ehhe
#include#include#include#include#include#include#include#include#define ll __int64#define inf 0x3f3f3f3fusing namespace std;int n,a,b,c,cnt,head[200000],l[200000];struct node
2015-10-30 09:53:52 425
原创 POJ Power Network (dinic)
题目大意:给定n个点,a个发电站,b个用户,m个线路,求最大流的问题.思路:要改成单源单汇点来进行处理.#include#include#include#include#include#include#include#include#define ll __int64#define inf 0x3f3f3f3fusing namespace std;int n
2015-10-29 21:59:11 441
原创 HDU 1532 Drainage Ditches(Dinic)
网络流dinic模板:#include#include#include#include#include#include#include#include#define ll __int64#define inf 0x3f3f3f3fusing namespace std;int n,a,b,c,cnt,head[2000],l[2000];struct node
2015-10-29 18:30:05 389
原创 POJ 2492 A Bug's Life (高级并查集||带权并查集 ||二分图的判断+二维vector)
题目大意:问会不会有虫子是同性恋.解题思路:比赛的时候反应就是找到相抵相矛盾的即可,于是分析建图判断是否会有环,并且当为奇数环的时候就是没有,偶数环是就有同性恋.但是用DFS收索时遇到两种奇数环相连接到一题的时候出现了问题.其实想想只要时找到相矛盾的数据时就可以,所以可以用并查集,并查集的话主要就是将相同性别的放到一起,最后判断输入的时候查一下是否会有矛盾就行.
2015-10-24 20:26:39 534
原创 Substrings HDU 2138 (STL +寻找相同串中的最大公共串(贪心))
思路:要找到所有的串的最大公共串,一定存在于最小的串中所以先找到最小的串,然后再找出这最小长度的母串的子串所能组成的序列,然后不停的和其他串像比较找到最长子串就可以.#include#include#include#include#include#include#define ll __int64#define inf 0x3f3f3f3fusing nam
2015-10-23 19:44:50 446
原创 NYOJ 488 素数环(DFS)
题目大意:给定一个数判断是否有环可以构成每个相邻的数的和是一个素数.思路:从1开始DFS,遇到相加全成为素数环的就输出,类似的回溯,递归,数列1-n都是奇偶相间的,所以当N为奇数时,一定有种奇+奇的方式,所以不可能会有素数.那么可以剪枝.#include#include#include#include#include#define ll __int64#de
2015-10-22 20:51:01 651
原创 HDU 5504 GT and sequence(贪心)
题目大意:给定一个序列,任选出序列中的数字,并输出其组成的最大数.思路:就是一个简单的贪心吧,但是注意各组数据的各种坑.如当只有一个数的时候,permutation中含有0,其中有负数,0,正数等等情况.#include#include#include#include#include#define ll __int64#define inf 0x
2015-10-22 18:39:13 451
原创 POJ 1087&&HDU 1526 A Plug for UNIX (二分图+Floyd传递闭包 )
题目大意: 有n个插座,下边n行分为为插座的类型,m个电器,m行分别代表电器的名称和插头的类型.最后,有k行数据每组,对应适配器的插座和插头的类型. 思路:将所有的插座,插头编上序号,同时给自己也要标记上插座和插头(均是自身和自身间的关系),然后给,适配器的插座和插头建立联系.之后进行Floyd的传递闭包链接有间接性关系图.最后匹配,但注意要进行"编号"与"编号"之间的
2015-10-14 21:49:43 520
原创 HDU 1281 棋盘游戏 (二分图+枚举每点是否为匹配关键)
思路:容易看出是二分图的最大匹配问题,但是如何判断某点是否为关键点是关键。我们可以将每个可能的点枚举一下然后进行删点,判断删点后的最大匹配是否仍等于原来的最大匹配即可。#include#include#include#include#includeusing namespace std;int head[1000],cropath[1000],s,a[1000],b[1
2015-10-14 15:14:29 502
原创 POJ 2466 Chessboard(二分图+前向星)
思路:和之前的建立网络战的题目类似,就是通过当前的合要求的点开始向四周寻找,若四周有合格的便将他们建立关系。注意其中的边界处理#include#include#include#include#define inf 0x3f3f3f3fusing namespace std;int Map[2000][2000],cropath[6000],id[2000][2000],he
2015-10-13 23:48:46 488
原创 HDU 2063 过山车(二部图)
#include#include#include#include#define inf 0x3f3f3f3fusing namespace std;int Map[600][600],cropath[600];bool use[600];int n,m;int DFS(int v){ int i,j,k; for(i=1;i<=m;i++) {
2015-10-13 19:53:00 384
原创 HDU 1535 Invitation Cards(SPFA+双向建图 )
题目大意:求一个从地点然后再从一个地点返回过来,的最短路径.思路:正向+逆向建图#include#include#include#include#define inf 0x3f3f3f3fusing namespace std;bool vis[1000010];int n,head1[1000010],s1,head2[1000010],s2,ans
2015-10-13 18:55:59 450
原创 HDU 1385 Minimum Transport Cost(最短路Floyd+标记路径)
题目大意:给定n个城市,及其之间的距离,然后有一行数,代表在每个城市中所需要的过路费。求任意两点间的最小费用,及其经过的路径。#include #include #include #include #include #include #include #define inf 0x3f3f3f3f#define ll long longusing namespace
2015-10-13 11:23:10 433
原创 SDUT 出栈序列判定 3334
思路 :让第一个序列进行进占,并且同时和其余序列比较,判断当栈顶与其余序列中的一列当前的数字相同则出栈,否则继续入栈,最后判断栈是否为空,或者j>=n,都是yes.#include #include #include #include #include #include #include #define inf 0x3f3f3f3f#define ll __in
2015-10-13 00:16:55 460
原创 scu1529: Equator (DP+贪心)
题目大意:有一个成环的序列,求选取其中一个一段最大的连续区间和.思路:1(无环)最大和不在两端,将一个环拆开,求这段序列的最大和.2(有环)最大和在两端,用全部的和减去最小连续区间和.#include #include #include #include #include using namespace std;int a[1000010];i
2015-10-11 11:02:44 415
原创 HDU 5122 K.Bro Sorting
思路:从后往前将最后一个值设置为当前的最小值,从如果#include #include #include #include #include #include #define inf 0x3f3f3f3f#define ll __int64using namespace std;int Map[1000][1000],dis[1000],s,head[1000],re
2015-10-09 23:10:00 339
原创 HDU 1317 XYZZ(Floyd(传递闭包)+bellmanfd(判断正权环))
题目大意:给定N个房间,然后是n行,每行3个数第行3个数分别代表,第i个房间的能量,与此房间相连的房间个数m分别是m个相连房间,判断是否可从1走到n.思路:1、首先先判断能不能从1走到n,所以用Floyd判断一下传递闭包(就是看看是不是任意两个房间是可达的,判断连通性)。2、用bellman判断是否有正权环,注意判断有无正权环的意图在于是否会在此环上到达n。#inclu
2015-10-09 21:45:14 620
原创 HDU 1599 find the mincost route(Floyd判最小环)
#include #include #include #include #include #include #define inf 10000000#define ll __int64using namespace std;int Map[600][600],ed[600][600],n,m,cnt;void Floyd(){ int i,j,k; for(
2015-10-08 23:58:48 358
原创 zzuoj 10408 最短路(dijistla||贝尔曼福特 求最少转站点)
题目大意:求从1到n的最少需要转车的次数,(m,n)代表m条路线,n个点(每个点是有方向的).其余m行代表每辆车所经过的车站编号.求最少的从1到n的转车次数,若不能到达输出NO思路:首先要处理输入,用字符串输入,并且注意位数>=2的车站编号的处理,将Map[][]中的所有关联的道路全部赋值为1,整道题的思路是将点与点之间能够缩短的距离缩短后,直接1到n的最短距离输出-1.单源指
2015-10-08 20:23:36 877
原创 uva 7008 The 2014 ACM-ICPC Asia Mudanjiang Regional Contest 【部分题解】
这题刚上来反应像是二分图但是,自己水平太渣又感觉和之前的二分不同,但是的确时二分图(- -! 一变化就不认识了).注意此题的储存方式用前向星,对于二分图都是点与点之间的关系所以将直线和曲线都要转化为两种集合的形式.那么一种是比值的形式一种是,半径的形式,毕竟不是规律的点对点,所以借助map容器来进行将浮点转化为整数的形式 #include #include #include #i
2015-10-07 21:19:39 481
原创 POJ 1988 Cube Stacking(带权并查集)
思路:就是带权并查集的模板.#include#include#include#include#include#include#include#include#define ll long long#define inf 0x3f3f3f3fusing namespace std;int f[1000000],Rank[1000000],num[1000000];
2015-10-07 11:20:20 445
原创 POJ 1001 Exponentiation(java+处理字符串)
输出的数值如果计算的结果是小数且以0.的形式开头,所以普通的计算次方可定不可以.可以用java将数值改变为字符串来处理. import java.util.*;import java.io.*;import java.math.*;public class Main{ public static void main(String[] args) { BigDecim
2015-10-06 21:15:49 497
原创 FZU 1759 Super A^B mod C(数论+快速幂+欧拉函数)
思路:刚开始想直接用JAVA大数处理但是,由于再pow()中不能是大整数形的.后来才知道有个相当于降幂公式A^(B%oural(c)+oural(c))%c=A^B%c.#include #include #include #include #include #include #include #include using namespace std;typede
2015-10-06 20:55:46 446
原创 HDOJ 1811 Rank of Tetris(拓扑+并查集)
这道题WA了两天 - - !思路:首先分析以下什么情况下才能OK(当然时可以判断出顺序的情况下), CONFLICT(1就是存在等号并且有再>或 UNCERTAIN(当入度为0 的个数>1{其中有两部分1,在开始压队列的时候判断一次,2再队列中删除度后再判断一次} )#include#include#include#include#incl
2015-10-05 20:11:25 421
原创 最大流,最小割,二分匹配,题目列表
转自:http://blog.csdn.net/shahdza/article/details/7779537【HDU】1532Drainage Ditches(入门) [最大流]3549 Flow Problem(入门) [最大流]3572 Task Schedule(基础) [最大流]任务分配,判断满流2732 Leapin' Liza
2015-10-04 10:10:28 624
原创 HDOJ 5154 Harry and Magical Computer(拓扑)
注意在计数的时候在队列里边。#include #include #include #include #include #define ll __int64using namespace std;int head[20010],cnt,du[20010],p[20010];struct node{ int to,next;}q[20010];
2015-10-04 00:45:58 402
原创 HDOJ 2647 Reward(反拓扑+统计节点)
题目大意:有一种关系a,b代表a的奖金比b的高,最少的奖金为888,求总共需要的最少的钱数,让所有满足关系的人都得到应有的奖金,否则输出-1;思路:反向进行拓扑,主要是统计奖金。注意可能给定的数据是深林,所以可以先统计出度为0的点赋值为888,然后边拓扑边统计。#include #include #include #include #include #de
2015-10-03 23:56:05 424
原创 hdu 1241 Oil Deposits(dfs)
Oil DepositsTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 18935 Accepted Submission(s): 10902Problem DescriptionThe GeoSurvComp geolo
2015-10-03 16:09:50 323
原创 POJ 1041 John's trip(欧拉图+DFS)
题目大意:给定n,m,p三个数,其中,n,m是边号为p的两个顶点。求是否满足欧拉回路并且输出搜索的路径。思路:没想到题目的建图的方法- -,看了题解才知道可以用Map[n][p]=m,Map[m][p]=n;表示点n通过边p来链接。在收索的时候就方便了。#include #include #include #include int Map[2010][20
2015-10-03 14:47:56 511
原创 HDU 1116 Play on Words(欧拉路径(有向图)+并查集)
题目大意:给定若干个单词,问他们能不能连成为一个联通量(连接的方式是当前的单词第一个字母和上一个单词的最后一个字母相同),并且符合欧拉路思路:(有向图的欧拉路问题)由题目大意得,每个单词的首尾才有用并且在'a'-'z'之间,所以可以由每个单词的两端来建图。并查集构造。然后判断联通分量问题;之后再判断欧拉路,我们可以统计出入度和出度不相同的点的个数,若没有则符合要求。若为2的话不
2015-10-02 23:54:02 680
原创 POJ 2602 Superlong sums(模拟大数加法)
Superlong sumsTime Limit: 2000MS Memory Limit: 65536KTotal Submissions: 22715 Accepted: 6709DescriptionThe creators of a new programming language D++ have found out
2015-10-02 20:04:51 485
原创 How many Fibs?(java)
题目大意:给定一个范围a,b为再次范围内有多少的斐波那契额数.思路:直接上java搞,注意在java中的a==0&&b==0程序停止的写法.import java.util.*;import java.io.*;import java.math.*;public class Main{ static BigInteger[] ans; public stati
2015-10-02 12:05:31 476
原创 N!
Given an integer N(0 ≤ N ≤ 10000), your task is to calculate N! InputOne N in one line, process to the end of file. OutputFor each N, output N! in one line. Sample Input
2015-10-02 11:28:59 370
原创 HDU 1715 大菲波数 (java)
Fibonacci数列,定义如下:f(1)=f(2)=1f(n)=f(n-1)+f(n-2) n>=3。计算第n项Fibonacci数值。 Input输入第一行为一个整数N,接下来N行为整数Pi(1 Output输出为N行,每行为对应的f(Pi)。 Sample Input512345 Sampl
2015-10-02 11:04:13 443
原创 HDOJ 1753 大明A+B (高精度的小数加法 java )
大明A+BTime Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 10488 Accepted Submission(s): 3770Problem Description话说,经过了漫长的一个多月,小明已经成长了许多
2015-10-02 10:46:09 705
原创 BNUOJ 弱校联萌十一大决战之强力热身B Carries(二分)
frog has n integers a1,a2,…,an, and she wants to add them pairwise. Unfortunately, frog is somehow afraid of carries (进位). She defines \emph{hardness}h(x,y) for adding x and y the numb
2015-10-01 21:33:42 996
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人