
ACM假期练习一
mytzs123
大部分内容纯属为了记录,有错误之处,欢迎批评指正
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
The All-purpose Zero-HDU5773
?? gets an sequence S with n intergers(0 < n <= 100000,0<= S[i] <= 1000000).?? has a magic so that he can change 0 to any interger(He does not need to change all 0 to the same interger).?? wants you t原创 2017-08-09 17:03:44 · 213 阅读 · 0 评论 -
LIS模板
/*1.O(n?)算法定义dp[i]:以ai为结尾的最长上升子序列的长度以ai结尾的上升子序列是:①只包含ai的子序列②在满足j<i并且aj<ai的以aj为结尾的上升子列末尾,追加上ai后得到的子序列综合以上两种情况,便可以得到递推关系式:dp[i] = max{1, dp[j]+1| j<i且aj<ai}*///O(n^2) 1.本身1;2如果j<i;a[j]<a[i],则dp原创 2017-08-09 12:22:10 · 309 阅读 · 0 评论 -
Bellovin -HDU5487
Peter has a sequence a1,a2,...,ana1,a2,...,an and he define a function on the sequence -- F(a1,a2,...,an)=(f1,f2,...,fn)F(a1,a2,...,an)=(f1,f2,...,fn), where fifi is the length of the longest in原创 2017-08-09 15:50:24 · 386 阅读 · 0 评论 -
Bridging signals
Oh no, they've done it again', cries the chief designer at the Waferland chip factory. Once more the routing designers have screwed up completely, making the signals on the chip connecting the ports o原创 2017-08-09 13:44:40 · 196 阅读 · 0 评论 -
士兵杀敌(三)
题目出处描述南将军统率着N个士兵,士兵分别编号为1~N,南将军经常爱拿某一段编号内杀敌数最高的人与杀敌数最低的人进行比较,计算出两个人的杀敌数差值,用这种方法一方面能鼓舞杀敌数高的人,另一方面也算是批评杀敌数低的人,起到了很好的效果。所以,南将军经常问军师小工第i号士兵到第j号士兵中,杀敌数最高的人与杀敌数最低的人之间军功差值是多少。现在,请你写一个程序,帮小工原创 2017-08-12 16:02:47 · 222 阅读 · 0 评论 -
线段树模板
#include#includeusing namespace std;#define L o<<1 //乘2 #define R (o<<1)|1 //乘2加1 int tmax,tmin;//记录最大最小值,减少查询次数 #define INF 0x3f3f3f3f struct Node{ int l,r,sum,Max,Min;}Tree[1000<<2];//开数组原创 2017-08-12 16:17:43 · 166 阅读 · 0 评论 -
士兵杀敌(一)
题目出处描述南将军手下有N个士兵,分别编号1到N,这些士兵的杀敌数都是已知的。小工是南将军手下的军师,南将军现在想知道第m号到第n号士兵的总杀敌数,请你帮助小工来回答南将军吧。注意,南将军可能会问很多次问题。输入只有一组测试数据第一行是两个整数N,M,其中N表示士兵的个数(1随后的一行是N个整数,ai表示第i号士兵杀敌数目。(0随原创 2017-08-12 12:15:27 · 185 阅读 · 0 评论 -
士兵杀敌(二)
题目出处描述南将军手下有N个士兵,分别编号1到N,这些士兵的杀敌数都是已知的。小工是南将军手下的军师,南将军经常想知道第m号到第n号士兵的总杀敌数,请你帮助小工来回答南将军吧。南将军的某次询问之后士兵i可能又杀敌q人,之后南将军再询问的时候,需要考虑到新增的杀敌数。输入只有一组测试数据第一行是两个整数N,M,其中N表示士兵的个数(原创 2017-08-12 14:54:08 · 175 阅读 · 0 评论 -
Junk-Mail Filter-删点
原题出处Problem DescriptionRecognizing junk mails is a tough task. The method used here consists of two steps:1) Extract the common characteristics from the incoming email.2) Use a filter ma原创 2017-08-10 20:47:21 · 420 阅读 · 0 评论 -
find the most comfortable road-并查集带权
作者:点击打开链接原题:点击打开链接Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 6479 Accepted Submission(s): 2763Problem DescriptionXX星转载 2017-08-09 18:22:40 · 190 阅读 · 0 评论 -
并查集解释-畅通工程
点击打开链接首先在地图上给你若干个城镇,这些城镇都可以看作点,然后告诉你哪些对城镇之间是有道路直接相连的。最后要解决的是整幅图的连通性问题。比如随意给你两个点,让你判断它们是否连通,或者问你整幅图一共有几个连通分支,也就是被分成了几个互相独立的块。像畅通工程这题,问还需要修几条路,实质就是求有几个连通分支。如果是1个连通分支,说明整幅图上的点都连起来了,不用再修路了;如果是2个连通转载 2017-08-02 09:45:23 · 246 阅读 · 1 评论 -
并查集模板
有的写法用到了树的深度,就是重新开一个数组ran[maxn];用来记录每个树的深度,合并的时候把深度较小的合并到较大的上边,防止出现最极端的情况。但是用上路径压缩的话就不需要这个数组,因为压缩过后深度都是 2 ,随意操作;压缩就是把/* */里面的 par[x] = 加上,不加上去的话只查找,没有压缩;附上带ran[]数组的合并;如果用ran[]数组,尽量不要用rank[] rank再后转载 2017-08-02 11:02:34 · 183 阅读 · 0 评论 -
City -hdoj 4496-并查集删边
Luxer is a really bad guy. He destroys everything he met. One day Luxer went to D-city. D-city has N D-points and M D-lines. Each D-line connects exactly two D-points. Luxer will destroy all the D-l原创 2017-08-09 20:36:16 · 619 阅读 · 0 评论 -
背包问题
描述现在有很多物品(它们是可以分割的),我们知道它们每个物品的单位重量的价值v和重量w(1<=v,w<=10);如果给你一个背包它能容纳的重量为m(10<=m<=20),你所要做的就是把物品装到背包里,使背包里的物品的价值总和最大。输入第一行输入一个正整数n(1随后有n测试数据,每组测试数据的第一行有两个正整数s,m(1输出输出每组测试数据中背包内的物品的价原创 2017-07-26 23:38:53 · 164 阅读 · 0 评论 -
喷水装置二
描述有一块草坪,横向长w,纵向长为h,在它的橫向中心线上不同位置处装有n(n<=10000)个点状的喷水装置,每个喷水装置i喷水的效果是让以它为中心半径为Ri的圆都被润湿。请在给出的喷水装置中选择尽量少的喷水装置,把整个草坪全部润湿。输入第一行输入一个正整数N表示共有n次测试数据。每一组测试数据的第一行有三个整数n,w,h,n表示共有n个喷水装置,w表示草坪的横向长度,h表示草转载 2017-07-26 19:46:28 · 230 阅读 · 0 评论 -
喷水装置一
描述现有一块草坪,长为20米,宽为2米,要在横中心线上放置半径为Ri的喷水装置,每个喷水装置的效果都会让以它为中心的半径为实数Ri(0<Ri<15)的圆被湿润,这有充足的喷水装置i(1<i<600)个,并且一定能把草坪全部湿润,你要做的是:选择尽量少的喷水装置,把整个草坪的全部湿润。输入第一行m表示有m组测试数据每一组测试数据的第一行有一个整数数n,n表示共有n个喷水装转载 2017-07-26 17:34:26 · 233 阅读 · 0 评论 -
最小拦截系统
最少拦截系统Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 33691 Accepted Submission(s): 13230Problem Description某国为了防御敌国的导弹袭击转载 2017-08-07 11:12:08 · 433 阅读 · 0 评论 -
求最长子序列模板
/*LCSA BCBDABBD CABAdp[1][2] = 0dp[1][1] = 0dp[2][1] = 1//子串:连续//子序列:可以不连续 // LCSdp[i][j]//第一个字符串在第i个字符前且第二个串在第j个字符前可构成的最长子序列的长度 dp[i][j] = 0 i=0 || j=0 dp[i-1][j-1]+1原创 2017-08-08 10:26:17 · 209 阅读 · 0 评论 -
正整数分组
点击打开题目分析输入第1行:一个数N,N为正整数的数量。第2 - N+1行,N个正整数。(N 输出输出这个最小差输入示例512345输出示例1#include #include #include using namespace std原创 2017-08-10 19:45:20 · 394 阅读 · 0 评论 -
51nod 1085 背包问题01
在N件物品取出若干件放在容量为W的背包里,每件物品的体积为W1,W2……Wn(Wi为整数),与之相对应的价值为P1,P2……Pn(Pi为整数)。求背包能够容纳的最大价值。Input第1行,2个整数,N和W中间用空格隔开。N为物品的数量,W为背包的容量。(1 <= N <= 100,1 <= W <= 10000)第2 - N + 1行,每行2个整数,Wi和Pi,分别是原创 2017-08-10 16:04:00 · 248 阅读 · 0 评论 -
背包九讲
P01: 01背包问题 题目 有N件物品和一个容量为V的背包。第i件物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。 基本思路 这是最基础的背包问题,特点是:每种物品仅有一件,可以选择放或不放。 用子问题定义状态:即f[i][v]表示前i件物品恰放入一个容量为v的背包可以获得的最大价值。则其状态转移方程便转载 2017-08-10 09:05:53 · 224 阅读 · 0 评论 -
拓扑范例
问题简述:按等级发工资,每一个上级工资比下级多一,最低工资为1000,输出所需的最低工资/*输入:n m ,n表示有多少人,m表示有多少对关系 x y,表示,x是y的上级 输出:最低工资 ,无解输出-1 */#include#include#includeusing namespace std;#define fi first#define se sec原创 2017-08-05 12:55:17 · 347 阅读 · 0 评论 -
美素数
点击打开链接Problem Description 小明对数的研究比较热爱,一谈到数,脑子里就涌现出好多数的问题,今天,小明想考考你对素数的认识。 问题是这样的:一个十进制数,如果是素数,而且它的各位数字和也是素数,则称之为“美素数”,如29,本身是素数,而且2+9 = 11也是素数,所以它是美素数。 给定一个区间,你能计算出这个区间内有多少个美素数吗? In翻译 2017-07-23 23:49:54 · 437 阅读 · 0 评论 -
素数判断的初步理解
1.#includeint main(){ int i,n; scanf("%d",&n); for(i=2;i<n;i++)//作判断时实际上只需要比较到根号下n次方 if(n%i==0)break; if(i<n||n==1)puts("No"); else puts("Yes");}2.#includeint n,i,j,a[10原创 2017-07-23 21:07:23 · 256 阅读 · 0 评论 -
求与N互质数的个数
求解与n(1-n-1)互质的质因子的个数 解析:(转)定义:对于正整数n,φ(n)是小于或等于n的正整数中,与n互质的数的数目。 例如:φ(8)=4,因为1,3,5,7均和8互质。性质:1.若p是质数,φ(p)= p-1. 2.若n是质数p的k次幂,φ(n)=(p-1)*p^(k-1)。因为除了p的倍数都与n互质 3.欧转载 2017-07-30 09:36:04 · 5342 阅读 · 0 评论 -
2 3 5 7的倍数
出处点击打开链接1284 2 3 5 7的倍数给出一个数N,求1至N中,有多少个数不是2 3 5 7的倍数。 例如N = 10,只有1不是2 3 5 7的倍数。Input输入1个数N(1 Output输出不是2 3 5 7的倍数的数共有多少。Input示例10Output示例1#in原创 2017-08-11 12:39:44 · 657 阅读 · 0 评论 -
Co-prime-容斥
点击打开链接Co-primeTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 3495 Accepted Submission(s): 1381Problem DescriptionGiven转载 2017-08-01 16:36:53 · 216 阅读 · 0 评论 -
吃糖果—抽屉原理
根据抽屉原理,数量最多的糖果数小于等于剩余糖果数+1就是Yes,否则是No代码如下:[cpp] view plain copy print?#include #include using namespace std; int ant[1000000+11]; int main() { _转载 2017-07-30 22:59:43 · 282 阅读 · 0 评论 -
欧拉函数
欧拉函数 int Eular(int n) { int ans=1; for (int i=2;i { if (n%i==0) { n/=i; ans*=(i-1); //若n有个因子是i的k次,根据欧拉公式有下面的代原创 2017-08-01 15:46:10 · 229 阅读 · 0 评论 -
畅通工程
省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可)。经过调查评估,得到的统计表中列出了有可能建设公路的若干条道路的成本。现请你编写程序,计算出全省畅通需要的最低成本。 Input测试输入包含若干测试用例。每个测试用例的第1行给出评估的道路条数 N、村庄数目M ( 行对应村庄间道路的成本,每行给出一对正整数,分别是原创 2017-08-03 16:31:31 · 373 阅读 · 0 评论 -
最小生成树模板
点击打开链接老哥就是稳,啥都知道;欢迎大家关注大佬的博客(点链接看大佬,现在不是将来也一定是哦)时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 收藏 关注 N个点M条边的无向连通图,每条边有一个权值,求该图的最小生成树。 Input第1行:2个数N,M中间用空格分隔,N为点的数量,M为边的数量。(2 第2 - M + 1行:每行转载 2017-08-03 15:03:38 · 246 阅读 · 0 评论 -
Highways
这道题实际上就是求最小生成树的带最大权的边The island nation of Flatopia is perfectly flat. Unfortunately, Flatopia has no public highways. So the traffic is difficult in Flatopia. The Flatopian government is aware o原创 2017-08-04 09:18:50 · 245 阅读 · 0 评论 -
Ohana Cleans Up
点击打开链接Ohana Matsumae is trying to clean a room, which is divided up into an n by n grid of squares. Each square is initially either clean or dirty. Ohana can sweep her broom over columns of翻译 2017-07-24 09:58:52 · 288 阅读 · 0 评论 -
求是否有整数解
点击打开链接Problem Description有二个整数,它们加起来等于某个整数,乘起来又等于另一个整数,它们到底是真还是假,也就是这种整数到底存不存在,实在有点吃不准,你能快速回答吗?看来只能通过编程。例如:x + y = 9,x * y = 15 ? 找不到这样的整数x和y1+4=5,1*4=4,所以,加起来等于5,乘起来等于4的二个整数为1和47+(-8)=-转载 2017-07-23 16:45:38 · 802 阅读 · 0 评论 -
进制之间的转换
点击打开链接Problem Description输入一个十进制数N,将它转换成R进制数输出。 Input输入数据包含多个测试实例,每个测试实例包含两个整数N(32位整数)和R(210)。Output为每个测试实例输出转换后的数,每个输出占一行。如果R大于10,则对应的数字规则参考16进制(比如,10用A表示,等等)。 Sample Inpu转载 2017-07-23 16:40:05 · 213 阅读 · 0 评论 -
对n的阶乘取余
点击打开链接Problem DescriptionWhereIsHeroFrom: Zty, what are you doing ?Zty: I want to calculate N!......WhereIsHeroFrom: So easy! How转载 2017-07-23 16:16:10 · 4400 阅读 · 0 评论 -
十八岁的生日
相对算法一来说,算法二更加的简要,但是算法一比较好理解。转载 2017-07-22 22:53:09 · 513 阅读 · 0 评论 -
按顺序输出ZOJ
算法一和算法二都先统计了输入字符串中ZOJ的数量,算法一通过if语句依次树池ZOJ直至ZOJ全部输出完,算法二通过不断比较ZOJ数量的多少通过演算输出余下的字符转载 2017-07-22 21:43:03 · 316 阅读 · 0 评论 -
按图形输出
算法一着重于按行列图形的分布进行输出,相当于作了一个坐标系,在规定的点输出规定的字符,而算法而基本侧重直接输出每行每列要求输出的字符,相对来说,算法一更易理解与掌握。翻译 2017-07-22 20:45:55 · 297 阅读 · 0 评论 -
利息计算
为自行解决学费,chx勤工俭学收入10000元以1年定期存入银行,年利率为3.7% 。利率 按年计算,表示100元存1年的利息为3.7元.实际上有时提前有时推迟取,因此实际利息按天 计算,1年按365天计算,因此Q天的利息是 本金*3.7/100 *Q/365 存了100天后1年定期年利息提高到3.9%。如将存款提前全取出,再存1年定期。那么前面的 100天只能按活期利息1.7转载 2017-07-22 17:22:21 · 786 阅读 · 0 评论