UVA解题报告
文章平均质量分 67
学习算法是从刘汝佳的算法竞赛入门2的uva题目入门的,然而难度太高,有的是看了代码才能敲出来。相信不断地坚持辅助以好的方法定能成为学好算法。
huatian5
run
展开
-
UVA 1395 Slim Span(MST)
http://vjudge.net/problem/UVA-1395题目大意:让求最小生成树满足苗条度最小的条件(苗条度:最大边与最小边的差值)思路:在书上。根据Kruskal的思想,当所有点连通了就停止枚举左边界,记录最小苗条度。紫书的代码好稠#include#include#include#include#include#includeusing namespace原创 2016-09-20 14:42:59 · 1303 阅读 · 0 评论 -
UVA-10579 Fibonacci Numbers(Java大数)
让球第n个斐波那契数,Java大数,用Java写大数就是简单,虽然效率可能比C++的慢点。类似题目HDU-1316题解import java.math.BigInteger;import java.util.Scanner;public class Main { public static void main(String [] args){ Scanner in = n原创 2016-09-14 10:00:40 · 1005 阅读 · 0 评论 -
UVA-12555 - Baby Me(控制精度)
链接UVA-12555斤两转化成kg,注意一下小数点后消0的操作,Yes。/*BNUOJ27888:Baby Meuva-12555 - Baby Me*/#include#include#includeusing namespace std;char str[100];int main(){ int t; cin >> t; for(i原创 2016-09-06 23:00:17 · 763 阅读 · 0 评论 -
UVA-11080 Place the Guards(二分图染色)
UVA-11080题意:用最少的士兵看守每条街道,但不可以相邻。//代码参考自,,,#include#include#include#includeusing namespace std;const int maxn = 230;int n , m , c[maxn];vector G[maxn];int color_now , color_all;bool d原创 2016-09-05 17:38:03 · 419 阅读 · 0 评论 -
UVA 11426 GCD - Extreme (II)(欧拉函数)
题意:给出正整数n,求gcd(1,2)+gcd(1,3)+gcd(2,3)……+gcd(n-1,n),即求求sum( gcd(i,j) , 1思路:设f[n] = gcd(1,n)+gcd(2,n)+……+gcd(n-1,n)所以要求的结果就是s[n] = f[1] + f[2] +……+ f[n],所以结果s[n] = s[n-1] + f[n]gcd(x,n)=i是n的约原创 2016-08-31 22:02:00 · 740 阅读 · 0 评论 -
UVA 11806 Cheerleaders(容斥原理)(组合数)
参考了两篇博客,并摘抄了里面的部分解释AOQNRMGYXLMVYan_Bin 此题目是用的容斥原理,设第一行没有石子的方法数为A,最后一行没有石子的方法数为B,第一列没有石子的方法数为C,最后一列没有石子的方法数为D,不加任何限制而放置k个石子的总方法数为S。那么答案应该为S - (A U B U C U D)。用二进制的方式表示集合A、B、C、D的组合方式。0001表示在A中、原创 2016-08-27 10:03:05 · 1052 阅读 · 0 评论 -
UVA-11401 Triangle Counting(数学优化)
链接UVA-11401题意:求任意三边(1~n)组成三角形的个数思路:用加法原理,选定一边x,枚举y(1~x-1),则x-y y=1时,0解,y=2时,1解……,所以共有0+1+2+……+x-2 = (x-1)*(x-2)/2然后y与z的组合肯定会有重复的,要去重,而且还要去掉y=z的情况y = z的情况:枚举y(x/2+1……x-1),共有x-1 - (x/2+1) =原创 2016-08-26 16:40:46 · 1311 阅读 · 0 评论 -
UVA-11538 Chess Queen(数学)
链接UVA-11538题意:给出皇后的放置方法:同行、同列、同对角线,让求n*m棋盘里面放两皇后的情况总数。思路:同行的: n*m*(m-1)同列的: m*n*(n-1)对角线的则比较复杂了:例如右上方的,对角线长度分别为1、2、3……n-1长度为i的皇后情况有i*(i-1)种,所以为∑i*(i-1)然后又有左下方、右下方、左上方,即4*∑然后长原创 2016-08-26 15:28:32 · 816 阅读 · 0 评论 -
UVALive 3263 That Nice Euler Circuit(计算几何)
vj的地址好看的一笔画让求闭合曲线形成的图形将整个平面分成了几步分。利用到了欧拉定理:n - m + r = 2;平面数为r = 2 - n + m顶点数n 和 边数m 的求法特别点。要去除在直线中间的点,这利用了 unique函数简解#include#include#include#includeusing namespace std;cons原创 2016-08-11 22:26:22 · 483 阅读 · 0 评论 -
UVA-11178 - Morley's Theorem(计算几何)
11178莫雷定理,最早是英国数学家莫勒(Morley)于1904年发现的,内容为三角形三个角的三等分线共有6条,每相邻的(不在同一个角的)两条三等分线的交点,是一个等边三角形的顶点。让求DEF三点,思路还是很简单的,先求一个点,例D,先用逆转的方法求BD,CD,再求交点。#include#include#includeusing namespace std;con原创 2016-08-11 16:28:43 · 474 阅读 · 0 评论 -
UVA-11021 - Tribles(概率期望)
链接uva-11021题意:开始有k只麻球,每只都是活一天就死,每只死前都会有pi的概率生出i只麻球。求m天后麻球死光的概率。思路:各个麻球的死亡都是独立的,求对于一个麻球而言,m天后死光的概率就是f[m] 由全概率公式f[i] = p0 + p1 * f(i - 1) + p2 * f(i - 1)^2 + p3 * f(i - 1)^3....pn-1 * f(i - 1)^原创 2016-08-10 09:58:12 · 567 阅读 · 0 评论 -
UVA-10881 - Piotr's Ants
Piotr's AntsTime Limit: 2 seconds"One thing is for certain: there is no stopping them;the ants will soon be here. And I, for one, welcome ournew insect overlords."Kent Brockm原创 2016-08-09 20:25:15 · 605 阅读 · 0 评论 -
UVa-11300 - Spreading the Wealth(中位数)
11300 - Spreading the Wealth ProblemA Communist regime is trying to redistribute wealth in a village. They have have decided to sit everyone around a circular table. First, everyone has conv原创 2016-07-21 10:14:21 · 538 阅读 · 0 评论 -
UVA-11729 - Commando War(贪心、排序)
/*题意:你有n个部下需要交代任务,每个部下,需要b时间交代任务,j时间执行任务,你需要控制交代任务的顺序,以求最少结束任务时间。贪心、排序*/#include#include#includeusing namespace std;const int N = 1005;struct job{ int b; int j;}m[N];bool cmp(job原创 2016-07-19 21:00:17 · 1235 阅读 · 0 评论 -
UVA-11292 - Dragon of Loowater(排序)
/*题意:有一条长有n个头的恶龙,要雇佣一些骑士将龙杀死。龙的头又直径,骑士能力有限。雇佣x号骑士需要花费x money。x号骑士只能杀死直径小于等于x的龙头。要求最小花费杀死恶龙,杀不死输出Loowater is doomed!思路:贪心、排序*/#include#include#includeusing namespace std;const int N = 20005;原创 2016-07-19 20:59:16 · 1138 阅读 · 0 评论 -
UVa 401 Palindromes(简单字符串)
简单的判断是否是回文串、镜像串,然后自己写的真费劲,没逃掉刘汝佳的书,这里的代码很有技巧性,特别值得学习,额,其实他书上的代码都很精简CharacterReverseCharacterReverseCharacterReverseAAMMYYB N Z5C OO原创 2016-06-23 15:28:51 · 1844 阅读 · 0 评论 -
UVA 11582 - Colossal Fibonacci Numbers!(数论)(分治法幂取模)
巨大的斐波那契数!题目大意:斐波那契数列f[N],给你a,b,n,求f[a^b]%n.思路:数论题。f[a^b]%n是有周期的,我们求出来这个周期后就可以将简化成f[(a%周期)^b]%周期运用分治法幂取模。注意用unsigned long long(貌似是 long long的二倍),不然会溢出,又学了一招。。。不知道哪的bug,一直改不对,一直,后来捡来别人的和自己一样的代码一原创 2016-05-28 21:26:47 · 3858 阅读 · 0 评论 -
UVA 10375 - Choose and divide(数论)(组合数学)
题目大意:给出 p ,q, r, s这四个数,C(m, n) = m! / (m − n)! n! ,让你求解 C(p, q)by C(r, s) ,即两个阶乘相除。思路:( p!*s!*(r-s)! ) /( q!*(p-q)!*r! ) 筛法求素数,唯一分解定理,用函数实现,从而求其各种阶乘,代码如下#include//唯一分解定理#inc原创 2016-05-25 22:44:11 · 4057 阅读 · 0 评论 -
UVA 1339 - Ancient Cipher(题意)(排序)
题意太关键了,是两个字符串,让你对其中一个字符串操作。操作内容是,可以将这个字符串任意排列,然后将这个字符串中所有相同的字符随意映射成其他一种字符,使得映射后的字符串与另一个字符串相同。所以只需要将所有相同字符的数量记录下来,与另一个字符串比较有没有这个数量的字符就行了。(用数组存放每个字符的数量)代码如下:#include//UVA1339#include#include原创 2016-05-22 22:14:22 · 4558 阅读 · 0 评论 -
UVA 1584 - Circular Sequence(环状序列)(字典序)
1584 - Circular SequenceTime limit: 3.000 secondsSome DNA sequences exist in circular forms as in the following figure, which shows a circular sequence ``CGAGTCAGCT", that is, the last symbol ``原创 2016-05-08 18:55:51 · 2315 阅读 · 0 评论 -
UVA 489 - Hangman Judge 未解决未解决未解决未解决
Hangman Judge In ``Hangman Judge,'' you are to write a program that judges a series of Hangman games. For each game, the answer to the puzzle is given as well as the guesses. Rules are the原创 2016-04-29 22:22:44 · 510 阅读 · 0 评论 -
UVA 156 - Ananagrams (map)
Ananagrams Most crossword puzzle fans are used to anagrams--groupsof words with the same letters in different orders--for exampleOPTS, SPOT, STOP, POTS and POST. Some words however do not原创 2016-04-29 22:23:52 · 631 阅读 · 0 评论 -
UVa 101 - The Blocks Problem(STL)
The Blocks Problem Background Many areas of Computer Science use simple, abstract domains for both analytical and empirical studies. For example, an early AIstudy of planning and robot原创 2016-04-29 22:24:08 · 702 阅读 · 0 评论 -
uva725 - Division
725 - DivisionTime limit: 3.000 seconds代码如下:#include#includeint a[10];int Judge(int m,int n){ int sum; if(n>98765)//简化 return 0; memset(a,0,sizeof(a));原创 2016-02-01 20:20:59 · 575 阅读 · 0 评论 -
UVA 10474 Where is the Marble?(简单排序查找)(附lower_bound改写)
题目不易粘贴,存到我的文档里面了,以后看的话直接找文档就行了。 题目大意:算法竞赛入门经典p.108 思路:排序然后查找。 那么简单的题目竟然因为格式wa了几次,呜呜~#include#include#includeusing namespace std;int a[10005];int main(){ int n,q,flag,t=0; wh原创 2016-04-29 19:51:30 · 547 阅读 · 0 评论