
紫白书
feng_zhiyu
这个作者很懒,什么都没留下…
展开
-
(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 评论 -
(UVALive - 2678) Subsequence(前缀和,优化)
链接:https://vjudge.net/problem/UVALive-2678 Time limit3000 msOSLinux题意:由n个正整数组成的一个序列,给定整数S,求长度最短的连续序列,使他们的和大于等于S。(1<=n<=10^5,S<10^9)分析:最直接的思路,枚举子序列的起点和终点,时间复杂度为O(n^3),会T, 优化一下,预处理前缀和,时间复杂度降为O(n^2),也会T原创 2017-08-22 17:07:10 · 452 阅读 · 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 - 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 - 11752)The Super Powers (set判重,合数)
链接: https://vjudge.net/problem/UVA-11752 题意:如果一个数至少是两个不同的正整数的幂,那么称它是超级幂。 比如64=8^2=4^3。 无输入,输出1-2^64-1之间的所有超级幂,按照升序输出分析:可以想到指数肯定是合数。 而要求按照升序输出所有的超级幂,最大为2^64-1,可以求出指数最大为ceil(64*log(2)/log(i))-1 直接遍历原创 2017-08-24 12:21:33 · 388 阅读 · 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 评论