
ACM/ICPC
Tongqi_Liu
喜欢看书,ACMed,攻城狮
展开
-
快速幂取模&&素数筛选&&最大公约数
1.碾转相除int gcd(int a,int b){if(b==0) return a;return gcd(b,a%b);}(机智的师兄说写成三目运算符更好看-_-!)2.埃氏筛选要枚举n以内的素数。便从2~m(范围内最大的素数)的倍数全从n个数内划去,反复操作,即可枚举int a[maxn];int isprime[ma...原创 2014-03-09 21:01:30 · 650 阅读 · 0 评论 -
并查集
POJ 1703 Find them ,Catch them需要理清楚每个节点与父节点及根节点之间的关系,由于题目只涉及两种关系,对于点x,用r[x]=0代表与根节点关系相同,用r[x]=1代表与根节点关系不同。附上代码:#include<iostream>#include<algorithm>#include<cstdio>...原创 2014-03-09 20:42:02 · 554 阅读 · 0 评论 -
codeforce 400 C
C. Inna and Huge Candy Matrixtime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputInna and Dima decided to surprise Sereja. They b...原创 2014-03-06 20:06:37 · 843 阅读 · 0 评论 -
POJ 2586&&CF 245E
贪心策略(这题是真没读懂什么意思)每连续5个月都是亏损,在贪心选择下,必定会选择尽可能多的盈利月数X,但要使得X*S<(5-X)*d;而这8个阶段中相邻的阶段都会都相同的四个月的子集,如阶段 1 为 1 - 5 月,阶段 2 为 2 - 6 月,其中的 2 - 5 月就是公共子集,故应该尽可能在这些重叠区间内安放亏损月以满足题目要求从而列举所有情况:1 .若SS...原创 2014-03-05 21:25:59 · 789 阅读 · 0 评论 -
POJ 2109
分类上说这是贪心。。。。。。不过起初以为是大数运算,后来查了下才忆起double和long double的用法,瞬间(⊙o⊙)double 64位 范围:1.7*10(-308)---1.7*10(308);long double(CB的GCC编译器下) 96位 范围:1.7*10(-308)---1.7*10(308);(貌似在128位的情况下能近似达到:10^...原创 2014-03-05 20:50:26 · 729 阅读 · 0 评论 -
USACO 1.3章题解
1.3.1Milking Cows排序+贪心即可,话说这题我还冒泡了,n=5000尚可,再大点在OJ模式下目测就要TLE了,下次再写类似题时切记用结构体排序。。。1.3.2 bran1这题需要求最小覆盖长度,在已知总长度的情况下,减去最大未覆盖长度(即最大的m-1个间隙之和),但是做的时候没考虑到木板数目大于牛的数目的情况,看了题解后才发现在这种情况下则不会有间隙会被全部挡住,...原创 2014-03-05 19:43:46 · 735 阅读 · 0 评论 -
dfs算法的使用
算法思想,dfs算法是一个递归的过程,有回退的过程,对于一个无向连通图,访问图中某个顶点v0后,然后访问它的某一个邻接顶点v1,然后再从v1出发,访问v1的违访问过的邻接顶点,如此下去,直至到达所有的领接顶点都被访问过。然后回退一步,回到前一次被访问的顶点,看是否还有没有访问的顶点,如果有,则从这个顶点出发,进行向上述的过程一样进行访问,如果没有,则再回退一步,进行类似的访问,直至所有的顶点都被访...原创 2014-02-26 22:15:31 · 2338 阅读 · 0 评论 -
枚举+dfs浅尝
poj1753:给4*4的棋盘,只有黑白俩种棋,每翻转一个棋(白变黑,黑变白),就会带动周围四个棋一起动。为至于需要多少次操作可以是整个棋盘同一个颜色。#include<stdio.h>#include<string.h>#include<iostream>#include<algorithm>using namespa...原创 2014-02-26 21:23:51 · 744 阅读 · 0 评论 -
盒子里的气球及USACO1.2章部分题解
转载了枚举总结,又回顾了USACO1.2章,感觉自己还是要多看点东西。盒子里的气球Problem 1515 Balloons in a BoxAccept: 265Submit: 1430Time Limit: 1000 mSecMemory Limit : 32768 KBProblem DescriptionYou must write a p...原创 2014-02-25 00:23:14 · 1499 阅读 · 0 评论 -
POJ 1962 Corporative Network
思路和正常并查集差不多,只是要注意更新节点到根的距离#include<iostream>#include<cstring>#include<cstdio>#include<algorithm>using namespace std;#define MAXN 20010int f[MAXN];int sets[MA...原创 2014-03-12 15:25:51 · 559 阅读 · 0 评论 -
USACO中的搜索
Mother's Milk#include<stdio.h>#include<string.h>#include<iostream>#include<algorithm>#include<stdlib.h>using namespace std;const int n = 25;int flag[n][n];i...原创 2014-03-12 15:40:58 · 665 阅读 · 0 评论 -
HDU 畅通工程系列
HDU 1863(最小生成树)http://acm.hdu.edu.cn/showproblem.php?pid=1863练习使用kruskal算法#include<stdio.h>#include<algorithm>using namespace std;struct all{ int u,v,w;}e[2000];int...原创 2014-03-15 16:09:09 · 804 阅读 · 0 评论 -
USACO 1.5章
1.5.1 numtri动态规划入门,我也水一回。。。#include<stdio.h>long max(long a,long b){ if(a > b)return a; else return b;}long a[1010][1010];int main(){ long i,j,n; freopen("nu...原创 2014-03-18 18:23:38 · 669 阅读 · 0 评论 -
NY20 吝啬的国度
描述在一个吝啬的国度里有N个城市,这N个城市间只有N-1条路把这个N个城市连接起来。现在,Tom在第S号城市,他有张该国地图,他想知道如果自己要去参观第T号城市,必须经过的前一个城市是几号城市(假设你不走重复的路)。输入第一行输入一个整数M表示测试数据共有M(1<=M<=5)组每组测试数据的第一行输入一个正整数N(1<=N<=100000)和一个正整数S...原创 2014-03-19 20:26:40 · 488 阅读 · 0 评论 -
HDU 2181
哈密顿绕行世界问题Time Limit: 3000/1000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 1022Accepted Submission(s): 628Problem Description一个规则的实心十...原创 2014-03-19 21:34:22 · 376 阅读 · 0 评论 -
HDU 1010(剪枝+深搜)
Tempter of the BoneTime Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 62107Accepted Submission(s): 16992Problem Description...原创 2014-03-20 19:53:26 · 612 阅读 · 0 评论 -
HDU 1518
SquareTime Limit: 10000/5000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 7173Accepted Submission(s): 2332Problem DescriptionGiven a s...原创 2014-03-20 21:19:03 · 572 阅读 · 0 评论 -
HDU 4004 The Frog's Games 二分+贪心
The Frog's GamesTime Limit: 2000/1000 MS (Java/Others)Memory Limit: 65768/65768 K (Java/Others)Total Submission(s): 3272Accepted Submission(s): 1600Problem Description...原创 2014-03-22 16:43:00 · 681 阅读 · 0 评论 -
SACU 各种矩阵构造
正常矩阵:int a[n][n]; int t = 1; for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { a[i][j] = t++; } }S形矩阵:int a[n][n]; int t = 1; for (int i ...原创 2014-03-25 19:32:21 · 723 阅读 · 0 评论 -
SACU 判断一个数能否分解为几个连续自然数之和
只能这样说。。。一道数学题如果是奇数,肯定能分解成至少两数相加的模式。如果是偶数:假设一个数num能被分解为n个以a为开头的数之和,则必然满足下公式:M=a+(a+1)+(a+2)+…+(a+n-1)=n*a+n*(n-1)/2;要求a!=0,否则就是以a+1开头的连续n-1个整数了,也就是要求(M-(n+n*(n-1)/2))%n==0,即(M-(n*(n-1)/2))%n=...原创 2014-03-25 21:11:28 · 2695 阅读 · 0 评论 -
过桥问题和倒水问题
转载地址:http://blog.youkuaiyun.com/morewindows/article/details/7481851一.过桥问题在漆黑的夜里,四位旅行者来到了一座狭窄而且没有护栏的桥边。如果不借助手电筒的话,大家是无论如何也不敢过桥去的。不幸的是,四个人一共只带了一只手电筒,而桥窄得只够让两个人同时通过。如果各自单独过桥的话,四人所需要的时间分别是1,2,5,...转载 2014-03-25 23:45:21 · 495 阅读 · 0 评论 -
POJ 3414 Pots(BFS)
题意:给你两个容量为a,b的容器,分别有几种操作,分别是:将a倒掉,将b倒掉,将a加满,将b加满,将a倒入b,将b倒入a,六种操作,只要有一个达到c就完成了,求最少的步数,并输出过程。#include <iostream>#include <queue>using namespace std;int flag,path[1000];struct po...原创 2014-03-26 16:09:22 · 414 阅读 · 0 评论 -
POJ 3728 Catch That Cow (广搜)
Catch That CowTime Limit:2000MS Memory Limit:65536K Total Submissions:42564 Accepted:13225 DescriptionFarmer John has been informed of the location of a fugitive cow an...原创 2014-03-30 15:05:46 · 511 阅读 · 0 评论 -
ZOJ 3706 Break Standard Weight(深搜处理)
Break Standard WeightTime Limit:2 Seconds Memory Limit:65536 KBThebalancewas the first mass measuring instrument invented. In its traditional form, it consists of a pivoted horizontal lev...原创 2014-03-30 15:46:24 · 724 阅读 · 0 评论 -
POJ 3461 Oulipo(KMP模板)
OulipoTime Limit:1000MS Memory Limit:65536K Total Submissions:20574 Accepted:8206 DescriptionThe French author Georges Perec (1936–1982) once wrote a book, La dispariti...原创 2014-03-30 16:12:49 · 396 阅读 · 0 评论 -
UVA 11987 Almost Union-Find(带有删除操作的并查集)
Problem AAlmost Union-FindI hope you know the beautiful Union-Find structure. In this problem, you're to implement something similar, but not identical.The data structure you need to write is al...原创 2014-03-30 17:32:33 · 914 阅读 · 0 评论 -
POJ 3253 Fence Repair(贪心+优先队列)
Fence RepairTime Limit:2000MS Memory Limit:65536K Total Submissions:23110 Accepted:7365 DescriptionFarmer John wants to repair a small length of the fence around the pa...原创 2014-03-30 20:19:39 · 463 阅读 · 0 评论 -
HDU 1242 Rescue(BFS+优先队列)
Problem DescriptionAngel was caught by the MOLIGPY! He was put in prison by Moligpy. The prison is described as a N * M (N, M <= 200) matrix. There are WALLs, ROADs, and GUARDs in the prison....原创 2014-03-31 22:11:25 · 470 阅读 · 0 评论 -
USACO 2.1.1&&POJ 1164(dfs)
The CastleTime Limit:1000MS Memory Limit:10000K Total Submissions:5557 Accepted:3129 Description 1 2 3 4 5 6 7 ############################# 1 # ...原创 2014-04-01 16:36:27 · 465 阅读 · 0 评论 -
CF 239 C Triangle
1、http://codeforces.com/contest/408/problem/C2、题目大意:给出一个直角三角形的两条边长a、b,看能否将这个三角形放到一个二维平面内,使得三条边都不能平行于坐标轴,如果能输出三个点的坐标,否则输出NO3、思路:据我目测,可以固定一个点于远点,然后利用相似三角形的关系即可使夹角成90度,但是如图所示,需要满足:s1*l1==s2*l2,...原创 2014-04-01 16:49:40 · 688 阅读 · 0 评论 -
USACO 2.1.2 Ordered Fractions(暴力)
题意:输入一个自然数N,对于一个最简分数a/b(分子和分母互质的分数),满足1<=b<=N,0<=a/b<=1,请找出所有满足条件的分数。这有一个例子,当N=5时,所有解为:0/1 1/5 1/4 1/3 2/5 1/2 3/5 2/3 3/4 4/5 1/1给定一个自然数N,1<=n<=160,请编程按分数值递增的顺序输出所有解。思路...原创 2014-04-01 17:13:43 · 553 阅读 · 0 评论 -
USACO 2.1.3 Sorting a Three-Valued Sequence(枚举)
题意:排序是一种很频繁的计算任务。现在考虑最多只有三值的排序问题。一个实际的例子是,当我们给某项竞赛的优胜者按金银铜牌排序的时候。在这个任务中可能的值只有三种1,2和3。我们用交换的方法把他排成升序的。写一个程序计算出,给定的一个1,2,3组成的数字序列,排成升序所需的最少交换次数。思路:对比排序前后数组,用一个组合(a,b)表示应该排序后某个位置应该是a,但之前的是b(可用结构体...原创 2014-04-01 20:23:50 · 494 阅读 · 0 评论 -
USACO 2.1.4 Healthy Holsteins (DFS)
题意:农民JOHN以拥有世界上最健康的奶牛为傲。他知道每种饲料中所包含的牛所需的最低的维他命量是多少。请你帮助农夫喂养他的牛,以保持它们的健康,使喂给牛的饲料的种数最少。给出牛所需的最低的维他命量,输出喂给牛需要哪些种类的饲料,且所需的饲料剂量最少。维他命量以整数表示,每种饲料最多只能对牛使用一次,数据保证存在解。思路:搜索每种饲料用了没有,即每层搜索有两种状态:vis[n]=0...原创 2014-04-05 20:15:36 · 729 阅读 · 0 评论 -
POJ 2139 Six Degrees of Cowvin Bacon(任意两点最短路,Floyd)
题目:http://poj.org/problem?id=2139题意:奶牛们最近要拍电影了(ACM真是各种奶牛。。。)1、若两个的奶牛一起工作则,他们相互的度(degrees)为1;2、若两只奶牛a、b不一起工作,但与另有一只奶牛都和他们工作,则a、b的相互的度为2。求奶牛的与其他奶牛的度的平均值的一百倍的整数。#include<iostream>...原创 2014-04-06 17:38:53 · 626 阅读 · 0 评论 -
POJ 3259 Wormholes(Bellman-Ford)
WormholesTime Limit:2000MS Memory Limit:65536K Total Submissions:27859 Accepted:10026 DescriptionWhile exploring his many farms, Farmer John has discovered a number of ...原创 2014-04-06 20:24:14 · 485 阅读 · 0 评论 -
Codeforces Round #240 (Div. 2)
A. Mashmokh and Lightstime limit per test:1 secondmemory limit per test:256 megabytesinput:standard inputoutput:standard outputMashmokh works in a factory. At the end of each day he must...原创 2014-04-07 21:06:46 · 496 阅读 · 0 评论 -
POJ 3268 Silver Cow Party(dijkstra)
题意:有N(1≤N≤1000)个农场,编号为1~N,每个农场有一头奶牛。这些奶牛将参加在#X(1≤X≤N)号农场举行的派对。这N 个农场之间有M(1≤M≤100,000)条单向路,通过第i 条路将需要花费Ti(1≤Ti≤100)单位时间。每头奶牛必须走着去参加派对。派对开完以后,返回到它的农场。每头奶牛都很懒,所以总是选择一条具有最短时间的最优路。每头奶牛的往返路线是不一样的,因为...原创 2014-04-10 18:41:44 · 550 阅读 · 0 评论 -
POJ 1860 Currency Exchange(Bellman-Ford)
题意 : 有关汇率的问题,汇率rab,增加了一个手续费cab每次的结果是 (本金 - 手续费) * 汇率,而且一个人拥有的钱的类型是已知的,拥有的value 钱的个数也是已知的, 问你能不能增值。思路: 在Bellonman原本的实现过程中,是寻找最短路,判断负环。这一题恰好相反,需寻找最长路,判断有无无限松弛的正环#include <io...原创 2014-04-10 20:05:18 · 562 阅读 · 0 评论 -
hdu 2036 改革春风吹满(求多边形面积)
地址:http://acm.hdu.edu.cn/showproblem.php?pid=2036思路:利用白书上的求三角形面积公式,将多边形切割成三角形#include<stdio.h>#include<math.h>int main(){ double a,b,c,d,e,f,s; int n; while(scanf("%d",&a...原创 2014-04-13 12:29:39 · 743 阅读 · 0 评论 -
HDU 2054 A == B ? (字符串处理)
地址:http://acm.hdu.edu.cn/showproblem.php?pid=2054思路:题目没说多少位,所以只能用数组存放了注意以下几点:1.有无小数点2.前端0和后端03.正负号(注意0的情况)# include <stdio.h># include <string.h>char *norm(char *a){...原创 2014-04-13 13:57:29 · 655 阅读 · 0 评论