
UVA
feng_zhiyu
这个作者很懒,什么都没留下…
展开
-
(UVA - 11582)Colossal Fibonacci Numbers!(递推+快速幂,无符号长整型)
链接: https://vjudge.net/problem/UVA-11582The i’th Fibonacci number f(i) is recursively defined in the following way: • f(0) = 0 and f(1) = 1 • f(i + 2) = f(i + 1) + f(i) for every i ≥ 0 Your task原创 2017-08-16 10:28:21 · 421 阅读 · 0 评论 -
(UVA - 11039)Building designing (贪心)
链接: https://vjudge.net/problem/UVA-11039 题意:有n个绝对值各不相同的非0整数,选出尽量多的书,排成一个序列,使得正负号交替,且绝对值递增。输入n(1<=n<5e5)和n个整数,输出最长的序列长度。分析:贪心#include <cstdio>#include <cstring>#include <iostream>#include <cmath>#i原创 2017-08-22 16:02:12 · 484 阅读 · 0 评论 -
(UVA - 11584) Partitioning by Palindromes(DP,划分的最小回文串个数)
链接: https://vjudge.net/problem/UVA-11584分析:设dp[i]为1-i个字符划分成的最小回文串的个数, 状态转移方程:dp[i]=min(dp[i],dp[j-1]+1), 第j到第i个字符为回文串 dp[0]=0; 其余初始化为INF每次输入从字符串数组的第二个位置str[1]原创 2017-08-15 09:11:21 · 426 阅读 · 0 评论 -
(UVA - 10534) Wavio Sequence (LIS)
链接: https://vjudge.net/problem/UVA-10534题意:给定一个长度为n的整数序列,求一个最长序列,似的该序列的长度为奇数,前一半严格递增,后一半严格递减。(n<=10^4) 分析:转化为LIS问题,用cnt1,cnt2两个数组分别记录对应位置的最长上升子序列,求出两个数组最小的最大值,输出2*ans-1 复杂度:O(nlogn)#include <cstdio>原创 2017-08-23 11:25:05 · 532 阅读 · 0 评论 -
(UVA - 11524) Values whose Sum is 0(二分+枚举)
链接: https://vjudge.net/problem/UVA-1152分析:最简单粗暴的方法 4个循环,但是一定TLE,然后a,b分别相加再枚举,复杂度降低了,和二分结合,时间复杂度降为O(n^2log(n))#include<cstdio>#include<set>#include<cstring>#include<sstream>#include<iostream>#incl原创 2017-08-13 15:57:56 · 377 阅读 · 0 评论 -
(UVA - 10943)How do you add? (组合数学,隔板)
链接: https://vjudge.net/problem/UVA-10943题意:把K个不超过N的非负整数加起来,使它们的和为N,有多少种方法? 例如:N=5,K=2有6种,0+5,1+4,2+3,3+2,4+1,5+2 输入N和K,(1<=N,K<=100),输出方法总数除以10^6的余数分析:题意可以转化为 x1+x2+x3+……+xk=N的非负数解的种类数 由组合数原创 2017-08-23 17:37:32 · 527 阅读 · 0 评论 -
(UVA - 10892)LCM Cardinality(唯一分解定理/暴力)
链接:https://vjudge.net/problem/UVA-10892Time limit3000 msOSLinux题意:输入正整数n(n≤2∗109),统计有多少对正整数a≤b,满足lcm(a,b)=n.输出n和形成的对数.分析:n的因子不是很多,可以把所有因子求出来,暴力求解#include <cstdio>#include <cstring>#include <iostream>原创 2017-08-24 10:20:17 · 596 阅读 · 0 评论 -
(UVA - 11489)Integer Game(博弈)
链接: https://vjudge.net/problem/UVA-11489 题意:给定字符串N(1000个非0数字),两个人轮流取一个数字,要求取玩之后剩下的数是3的倍数,不能取的人输。 两个人足够聪明,谁会获胜? 先手胜输出S,否则输出T。分析:博弈,记录每次取完后的3的倍数的个数#include <bits/stdc++.h>using namespace std;#define原创 2017-08-24 13:28:41 · 435 阅读 · 0 评论 -
(UVA - 10791)Minimum Sum LCM (唯一分解定理)
链接 :https://vjudge.net/problem/UVA-10791分析:任意一个大于1的数都能用若干素因子的积来表示, 即唯一分解定理。在这道题中用唯一分解定理, n=a1^p1*a2^p2…… 发现,每个ai^pi作为一个单独的整数时满足题目条件 最小公倍数的最小和。有两种情况需要特判: 1.n为素数时,输出直接是n+1 2.只有一种素因子或者有素因子大于sqrt(n)的时原创 2017-08-16 11:43:36 · 472 阅读 · 0 评论 -
(UVA - 11461) Square Numbers (区间统计转换为前缀统计)
链接:https://vjudge.net/problem/UVA-11461题意:如果一个数能写成一个整数的平方,则成它是一个完全平方数,给定a,b,问[a,b]之间有多少个完全平方数?分析:转化为[1,a-1]和[1,b]#include <bits/stdc++.h>using namespace std;#define mem(a,n) memset(a,n,sizeof(a))#de原创 2017-08-24 14:02:12 · 487 阅读 · 0 评论 -
(UVa 1395)Slim Span (苗条的生成树)(并查集+Kruskal)
https://vjudge.net/problem/UVA-1395 题意:给出一个n(n<=100)节点的图,求苗条度(最大边减最小边的值)尽量小的生成树分析: 按权值从小到大排序。 对于一个连续的边集区间[L,R],如果这些边使得n个点全部联通,则存在一个苗条度不超过W[R]-W[L]的生成树。#include <cstdio>#include <iostream>#include <v原创 2017-12-31 15:57:14 · 361 阅读 · 0 评论 -
【 UVA - 315 Network】(求割点 Tarjan算法)
题意:求割点 割点概念: 在无向连通图中,如果将其中一个点以及所有连接该点的边去掉,图就不再连通,那么这个点就叫做割点(cut vertex / articulation point)。Tarjan算法求割点模板代码:#include <cstdio>#include <iostream>#include <cstring>#inclu...原创 2018-02-12 14:29:36 · 456 阅读 · 0 评论 -
(UVA - 10635)Prince and Princess (LCS变形为LIS,DP)
链接: https://vjudge.net/problem/UVA-10635 题意:有长度为p+1,q+1(1<=p,q<=n^2)的序列,序列元素为[1,n^2](2<=n<=250),并且都不相同,两个序列的第一个元素都是1.求出两个序列的最长公共子序列的长度。分析:n的范围不大,并且序列中的数最多只能出现一次,那么可以把第一个序列的元素对应的下标记下,在第二个序列中若输入的数在第一个序列原创 2017-08-22 10:37:28 · 445 阅读 · 0 评论 -
(UVA - 11054)Wine trading in Gergovia (等价转换)
As you may know from the comic “Asterix and the Chieftain’s Shield”, Gergovia consists of one street, and every inhabitant of the city is a wine salesman. You wonder how this economy works? Simple en原创 2017-08-17 09:13:47 · 394 阅读 · 0 评论 -
(UVA - 11572) Unique Snowflakes(set/map)
Emily the entrepreneur has a cool business idea: packaging and selling snowflakes. She has devised a machine that captures snowflakes as they fall, and serializes them into a stream of snowflakes that原创 2017-08-03 09:22:16 · 580 阅读 · 0 评论 -
(UVA - 11400)Lighting System Design(DP)
链接: https://vjudge.net/problem/UVA-11400分析:先按电压从小到大排序,预处理求出1到i的数量和s[i],然后设dp[i] : 灯泡1到i的最小费用 状态转移方程: dp[0]=0; dp[i]=min(dp[i],dp[j]+p[i].c*(s[i]-s[j])+p[i].k),j#inclu原创 2017-08-15 08:41:18 · 414 阅读 · 0 评论 -
(UVA - 116)Unidirectional TSP(DP,多段图的最短路问题)
链接 : https://vjudge.net/problem/UVA-116题意:给定m行n列(m<=10,n<=100)的整数矩阵,从第一列的任何一个位置出发每次往右或右上或右下走一格,最终到达最后一列。要求经过的整数之和最小。整个矩阵是环形的,即 第一行的上一行是最后一行,最后一行 的下一行是第一行。输出路径上的每列的行号。多解时输出字典序最小的。分析:题目是紫书上的,P270. LRJ大神原创 2017-08-14 16:50:05 · 433 阅读 · 0 评论 -
(UVA - 673)Parentheses Balance(括号匹配,栈)
链接:https://vjudge.net/problem/UVA-673 You are given a string consisting of parentheses () and []. A string of this type is said to be correct: (a) if it is the empty string (b) if A and B are correc原创 2017-08-14 15:10:39 · 500 阅读 · 0 评论 -
(UVA - 12034)Race(组合数,dp)
链接: https://vjudge.net/problem/UVA-12034题意:A,B两个人赛马,最终名次有3种可能:并列第一;A第一,B第二;B第一A第二 现在n个人赛马,问最终名次的可能情况的个数对10056取模分析:设答案为f(n),假设第一名有i个人,有C(n,i)种可能性,接下来有f(n-i)种可能性,答案为所有的i(1<=i<=n) C(n,i)*f(n-i)f(0)=1 可以原创 2017-08-13 19:08:01 · 787 阅读 · 0 评论 -
(UVA - 839) Not so Mobile(递归+引用,树的先序遍历)
链接:https://vjudge.net/problem/UVA-839题意:输入一个树状天平,根据力矩规则判断是否平衡。 Wl*Dl=Wr*Dr 先序遍历输入,每个天平的格式:Wl,Dl,Wr,Dr Wl或Wr=0时,表示输入一个子天平,接下来描述这个天平,当两者都为0,左右天平依次描述。分析:直接在输入的时候判断子天平是否平衡,并更新子天平的重量(此处用到 了 C++中的引用) 紫书P15原创 2017-08-13 10:18:41 · 524 阅读 · 0 评论 -
(UVA - 208)Firetruck(路径输出问题,回溯+并查集/floyd算法+dfs)
题目链接: https://vjudge.net/problem/UVA-208题意:输入一个n(n<=20)个节点的无向图以及某个节点k,按照字典序从小到大顺序输出从节点1到节点k的所有路径,要求节点不能重复。分析:路径输出问题,路径的第一个和最后一个点是固定的,可以用dfs从小到大搜索,回溯求出所有的路径记录并输出。 注意要提前判断节点1是否可以到达节点k,不然会TLE。提前判断能否到达,我写原创 2017-08-13 09:44:07 · 687 阅读 · 0 评论 -
(UVA - 10815)Andy's First Dictionary(set+istringstream用法)
链接: https://vjudge.net/problem/UVA-10815分析:遇到字母转换为小写,其他的全部转化为空格,然后用 sstream头文件中的istringstream的特性,输出 用法见:http://blog.youkuaiyun.com/feng_zhiyu/article/details/76646270#include<cstdio>#include<set>#include原创 2017-08-12 12:57:28 · 424 阅读 · 0 评论 -
(UVA - 12405) Scarecrow(贪心)
链接: https://vjudge.net/problem/UVA-12405题意:给定正整数n(n<=100),接着输入长度为n的字符串,只由’.’和’#’组成,一个’#’可以覆盖相邻三个’.’,求最少用多少个’#’可以覆盖所有的’.’?分析:贪心,遇到一个’.’,ans++,跳过后面的两个字符#include<cstdio>#include<cstring>#include<algorit原创 2017-08-12 12:33:45 · 460 阅读 · 0 评论 -
(UVA - 10976)Fractions Again?!(技巧,暴力枚举)
It is easy to see that for every fraction in the form 1 k (k > 0), we can always find two positive integers x and y, x ≥ y, such that: 1/k=1/x+1/y Now our question is: can you write a program that原创 2017-08-12 11:24:41 · 478 阅读 · 0 评论 -
(UVA - 11526) H(n)
What is the value this simple C++ function will return? long long H(int n){ long long res = 0; for( int i = 1; i <= n; i=i+1 ){ res = (res + n/i); } return res; } Input The first line of input原创 2017-08-11 20:02:16 · 542 阅读 · 0 评论 -
(UVA - 10048) Audiophobia(floyd算法)
Consider yourself lucky! Consider yourself lucky to be still breathing and having fun participating in this contest. But we apprehend that many of your descendants may not have this luxury. For, as yo原创 2017-08-11 19:31:21 · 519 阅读 · 0 评论 -
【UVA - 796 Critical Links 】(求桥 Tarjan算法)
题意:求桥 ps:本题不存在重边桥:当且仅当 (u,v) 为父子边,且满足 dfn[u] < low[v] 割点、桥详解:http://www.lydshy.com/wordpress/115#include <cstdio>#include <iostream>#include <cstring>#include <map&g...原创 2018-02-12 15:37:25 · 404 阅读 · 0 评论