题意: 输入一个h行w列的字符矩阵,草地用“#”表示,洞用"."表示.你可以把草改成洞,每格花费为d,也可以把洞填上草,每格花费为f.最后还需要在草和洞之间修围栏,每条边花费为b.整个矩阵第一行/列和最后一行列必须是草.求最小花费. 分析 这是一个最小割的很典型的题目. 每个洞要么是草地,要么是洞,我们假设草地是S集合,洞是Y集合,然后洞和草之间要建栅栏,也就可以理解为,用最少的花费将S集合和Y集合分开,这就是最小割的模型了.初始时,从s点向所有的草地点连一条边,容量为d,割这些边意味…
A Communist regime is trying to redistribute wealth in a village. They have have decided to sit everyone around a circular table. First, everyone has converted all of their properties to coins of equal value, such that the total number of coins is di…
http://www.cnblogs.com/sxiszero/p/3618737.html 下面给出的题目共计560道,去掉重复的也有近500题,作为ACMer Training Step1,用1年到1年半年时间完成.打牢基础,厚积薄发. 一.UVaOJ http://uva.onlinejudge.org 西班牙Valladolid大学的程序在线评测系统,是历史最悠久.最著名的OJ. 二.<算法竞赛入门经典> 刘汝佳  (UVaOJ  351道题) 以下部分内容摘自:http://sdkd…
下面给出的题目共计560道,去掉重复的也有近500题,作为ACMer Training Step1,用1年到1年半年时间完成.打牢基础,厚积薄发. 一.UVaOJ http://uva.onlinejudge.org 西班牙Valladolid大学的程序在线评测系统,是历史最悠久.最著名的OJ. 二.<算法竞赛入门经典> 刘汝佳  (UVaOJ  351道题) 以下部分内容摘自:http://sdkdacm.5d6d.com/thread-6-1-1.html “AOAPC I”是刘汝佳(大名…
题意: 一排有着不同能力值的人比赛,规定裁判的序号只能在两人之间,而且技能值也只能在两人之间 问题: <算法竞赛入门经典-训练指南>的分析: 上代码: #include<iostream> #include<cstring> using namespace std; +; +; int a[maxn]; int BIt[maxa]; int c[maxn]; int d[maxn]; int n; long long ans; int lowbit(int x) { r…
书上具体所有题目:http://pan.baidu.com/s/1hssH0KO 题目:算法竞赛入门经典 3-4/UVa11809:Floating-Point Numbers 代码: //UVa11809 - Floating-Point Numbers #include<iostream> #include<sstream> #include<cmath> long long E[12][33], e; double M[12][33], m, re; char s…
书上具体所有题目:http://pan.baidu.com/s/1hssH0KO 题目:算法竞赛入门经典 3-10/UVa1587:Box 代码: //UVa1587 - Box #include<iostream> unsigned rect[6];//每个面各有一个一样的对应面,故12个边只要定义6个,其中每偶奇两个代表一个长方形的两个边长 bool flag, times[3];//每个面出现的次数(出现第二次时为true) unsigned tmpx, tmpy, now; int m…
书上具体所有题目:http://pan.baidu.com/s/1hssH0KO 都是<算法竞赛入门经典(第二版)>的题目,标题上没写(第二版) 题目:算法竞赛入门经典 3-7/UVa1368:DNA Consensus String 代码: //UVa1368 - DNA Consensus String #include<iostream> using namespace std; #define MAX_M 52 #define MAX_N 1005 char DNA[MAX…
书上具体所有题目:http://pan.baidu.com/s/1hssH0KO 题目:算法竞赛入门经典 3-4/UVa455:Periodic Strings 代码: //UVa455 #include<iostream> int main() { char str[82]; int num; std::cin >> num; while (num--) { std::cin>>str; char *ps = str; while (*++ps != '\0') {…
书上具体所有题目:http://pan.baidu.com/s/1hssH0KO(我也是在网上找到的pdf,但不记得是从哪里搜刮到的了,就重新上传了一遍) PS:第一次写博客分享我的代码,不知道我对csdn的使用姿势对不对.想不出来要说些什么哈o(^▽^)o,那就直接开工,先写一篇试试. 题目:算法竞赛入门经典 3-1/UVa1585:Score 代码: #include<iostream> #define MAX 83 int main() { int num; std::cin >&…
title: 习题7-6 UVa12113_重叠的正方形 date: 2021-01-31 19:08:00 categories: 算法竞赛入门 tags: 数据结构 算法 UVa <算法竞赛入门>习题7-6 UVa12113_重叠的正方形 思路: 题目要求用6个长为2的正方形描绘输入的正方形边缘,如果可以描绘,输出yes,否则no 我用一个三维数组描述图形,比如G[i][j][k]表示以i,j点上k方向有边,k取值为0或者1,分别表示右和下 dfs函数设计为寻找遍历路径上没有被遍历过的点作…
title: 习题7-3 UVa211_多米诺效应 date: 2021-01-29 19:08:00 categories: 算法竞赛入门 tags: 数据结构 算法 UVa 题目: 使用28个多米诺骨牌拼凑出输入的二维数组 思路,使用一个二维数组标记每个多米诺骨牌的牌号,下标为Pips,一个典型的回溯 // // Created by hsby on 2021/1/30. // #include <iostream> #include <cstring> using names…
最大流: 给定指定的一个有向图,其中有两个特殊的点源S(Sources)和汇T(Sinks),每条边有指定的容量(Capacity),求满足条件的从S到T的最大流(MaxFlow). 最小割: 割是网络中定点的一个划分,它把网络中的所有顶点划分成两个顶点集合S和T,其中源点s∈S,汇点t∈T,从S出发指向T的边的集合,称为割(S,T),这些边的容量之和称为割的容量.容量最小的割称为最小割. 根据最大流最小割定理,最大流等于最小割. 其他: 求最小割边的个数的方法: ①建边的时候每条边权 w =…
1-1:整数值用%d输出,实数用%f输出. 1-2:整数/整数=整数,浮点数/浮点数=浮点数. 1-3:scanf中的占位符和变量的数据类型应一一对应,且每个变量前需要加&符号. 1-4:在算法竞赛中,输入前不要打印提示信息.输出完毕后应立即终止程序,不 要等待用户按键,因为输入输出过程都是自动的,没有人工干预. 1-5:在算法竞赛中不要使用头文件conio.h,包括getch().clrscr()等函数. 1-6:在算法竞赛中,每行输出均应以回车符结束,包括最后一行.除非特别说明,每行的行首不…
题目大意: 一根长度为L的木棍一堆蚂蚁爬,向左或向右,速度都为1,若两蚂蚁碰撞则同时转头(转身时间忽略不计),问T时间之后每只蚂蚁的位置: 输入:t,(t个样例),每个样例输入 L,T,n,接下来是n行每行两个数据,一个POS(位置),一个dir(方向): 输出:按输入顺序输出每只蚂蚁的最终位置,若处于碰撞状态则输出Turning,掉下去输出”Fell off“: 解题思路: 本题类似于<挑战程序设计>的一道水题(POJ -1852  Ants),思路题:不过本题输入并不一定是按照位置大小进行…
while (l < r) { int mid = (l + r) / 2; if (a[mid] >= x) r = mid; else l = mid + 1; }…
虽然都是算法基础,不过做了之后还是感觉有长进的,前期基础不打好后面学得很艰难的,现在才慢慢明白这个道理. 闲话少说,上VOJ上的专题训练吧:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=40741#overview 1. A UVA 10602 Editor Nottoobad 好像是俄罗斯NOI的题目,题意是给定n个字符串,然后重新安排字符串的顺序,使得最后需要打的字母总数最少.当前单词和前一个单词相同的前面部分可以不用打, 只需打…
书上具体所有题目:http://pan.baidu.com/s/1hssH0KO 代码:(Accepted,0 ms) //UVa1590 - IP Networks #include<iostream> unsigned i, m, num, ip[4], ipmax[4], ipmin[4], mask[4]; int cmp(unsigned *a, unsigned *b) {//compare for (int i = 0;i < 4;++i) { if (a[i] <…
图割论文大合集下载: http://download.csdn.net/detail/wangyaninglm/8292305 代码: /* graph.h */ /* Vladimir Kolmogorov (vnk@cs.cornell.edu), 2001. */ /* This software library is a modification of the maxflow algorithm described in An Experimental Comparison of Min…
Hash的基本知识 字符串hash算法将字符串看成p进制数字,再将结果mod q例如:abcabcdefg 将字母转换位数字(1231234567)=(1*p9+2*p8+3*p7+1*p6+2*p5+3*p4+4*p3+5*p2+6*p1+7*p0)%q=0~q-1经验值 p=131,1331时,冲突最小q取2^64(unsigned long long) 例如abd=(124)131=(1*131^2+2*131^1+4*131^0)=hash("abd")溢出不用管 先预处理出字…
137. 雪花雪花雪花 有N片雪花,每片雪花由六个角组成,每个角都有长度. 第i片雪花六个角的长度从某个角开始顺时针依次记为ai,1,ai,2,-,ai,6. 因为雪花的形状是封闭的环形,所以从任何一个角开始顺时针或逆时针往后记录长度,得到的六元组都代表形状相同的雪花. 例如ai,1,ai,2,-,ai,6和ai,2,ai,3,-,ai,6,ai,1 就是形状相同的雪花. ai,1,ai,2,-,ai,6和ai,6,ai,5,-,ai,1 也是形状相同的雪花. 我们称两片雪花形状相同,当且仅当它…
题目描述 原题连接 Y岛风景美丽宜人,气候温和,物产丰富. Y岛上有N个城市(编号\(1,2,-,N\)),有\(N-1\)条城市间的道路连接着它们. 每一条道路都连接某两个城市. 幸运的是,小可可通过这些道路可以走遍Y岛的所有城市. 神奇的是,乘车经过每条道路所需要的费用都是一样的. 小可可,小卡卡和小YY经常想聚会,每次聚会,他们都会选择一个城市,使得3个人到达这个城市的总费用最小. 由于他们计划中还会有很多次聚会,每次都选择一个地点是很烦人的事情,所以他们决定把这件事情交给你来完成. 他们…
题目描述 原题链接 一群小丑演员,以其出色的柔术表演,可以无限量的钻进同一辆汽车中,而闻名世界. 现在他们想要去公园玩耍,但是他们的经费非常紧缺. 他们将乘车前往公园,为了减少花费,他们决定选择一种合理的乘车方式,可以使得他们去往公园需要的所有汽车行驶的总公里数最少. 为此,他们愿意通过很多人挤在同一辆车的方式,来减少汽车行驶的总花销. 由此,他们可以很多人驾车到某一个兄弟的家里,然后所有人都钻进一辆车里,再继续前进. 公园的停车场能停放的车的数量有限,而且因为公园有入场费,所以一旦一辆车子进入…
习题2-1 位数 输入一个不超过109的正整数,输出它的位数.例如12735的位数是5.请不要使用任何数学函数,只用四则运算和循环语句实现. #include<stdio.h> int main(void) { int n; ; scanf("%d",&n); while(n) { n = n / ; digit++; } printf("%d\n", digit); ; } 习题2-2 水仙花数 输出100~999中的所有水仙花数.若3位数AB…
如下数列,第一项是1/1,第二项是1/2,第三项是2/1,第四项是3/1,第五项是2/2,…….输入n,输出第n项.1/1   1/2   1/3   1/4   1/52/1   2/2   2/3   2/43/1   3/2   3/34/1   4/25/1样例输入:314712345样例输出:2/12/41/459/99 方法一: #include <stdio.h> int main() { int n; ) { , s = ; for(; ; ) { s += k; if(s &…
第一题:340 - Master-Mind Hints UVA:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=98&page=show_problem&problem=276 题目大意:给定密码长度,然后是密码占一行,然后每一行是一个猜测,需要找出这行猜测有几个位置相同且密码相同的个数,几个位置不同但密码匹配的个数:前者个数为A,后者个数为B,匹配优先前者比如说密码…
题意:模拟患者做手术. 其条件为:医院有Nop个手术室.准备手术室要Mop分钟,另有Nre个恢复用的床.准备每张床要Mre分钟,早上Ts点整医院开张,从手术室手术完毕转移到回复床要Mtr分钟.现在医院早上开张了,给你一张患者的表,有Npa个患者等着做手术,每个患者的的信息有:名字.做手术需要的时间.恢复需要的时间.只要有空的手术室位就安排患者进去,优先安排门牌号低的.若多人同时竞争,输入列表靠前的先进.进入恢复室的优先顺序是,也是优先安排床号靠前的床,同时做完手术的人按照手术室的门牌号小的 (很…
题意:在前100000个Fibonacci(以下简称F)数字里,能否在这100000个F里找出以某些数字作为开头的F.要求找出下标最小的.没找到输出-1. 代码:(Accepted,0.250s) //UVa12333 - Revenge of Fibonacci //Accepted 0.250s //#define _XIENAOBAN_ #include<iostream> #include<cstring> #define MAXS 0xffffff #define CIN…
题意:模拟客服MM,一共有N种话题,每个客服MM支持处理其中的i个(i < N),处理的话题还有优先级.为了简化流程方便出题,设每个话题都是每隔m分钟来咨询一次.现知道每个话题前来咨询的时间.间隔.处理此话题所需的时长与一共有多少次咨询.问多少时间后全部话题处理完成. 代码:(Accepted,0.010s) //UVa822 - Queue and A //Accepted 0.010s //#define _XIENAOBAN_ #include<algorithm> #includ…
题意:不难理解,照搬题意的解法. 代码:(Accepted,0.190s) //UVa1597 - Searching the Web //#define _XIENAOBAN_ #include<iostream> #include<sstream> #include<cstring> #include<string> #include<vector> #include<map> #include<set> using…