1009: [HNOI2008]GT考试
摘要:Description 阿申准备报名参加GT考试,准考证号为N位数X1X2....Xn(0<=Xi<=9),他不希望准考证号上出现不吉利的数字。他的不吉利数学A1A2...Am(0<=Ai<=9)有M位,不出现是指X1X2...Xn中没有恰好一段等于A1A2...Am. A1和X1可以为0 阿申准备
阅读全文
posted @
2017-11-29 11:37
怡红公子
阅读(202)
推荐(0)
[HAOI2007] 上升序列
摘要:【问题描述】对于一个给定的S={a1,a2,a3,…,an},若有P={ax1,ax2,ax3,…,axm},满足(x1<x2<…<xm)且(ax1<ax2<…<axm)。那么就称P为S的一个上升序列。如果有多个P满足条件,那么我们想求字典序最小的那个。 任务 给出S序列,给出若干询问。对于第i个询问,求出长度为Li的上升序列,如有多个,求出字典序最小的那个(即首先x1最小,如果不唯一,再看x2最小……),如果不存在长度为Li的上升序列,则打印Impossible.【输入格式】 第一行一个N,表示序列一共有N个元素第二行N个数,为a1,a2,…,an第三行一
阅读全文
posted @
2012-10-30 01:17
怡红公子
阅读(384)
推荐(0)
[NOIP2010冲刺十二] 奶牛晒衣服
摘要:【题目描述】 在熊大妈英明的带领下,时针和它的同伴生下了许多牛宝宝。熊大妈决定给每个宝宝都穿上可爱的婴儿装。于是,为牛宝宝洗晒衣服就成了很不爽的事情。圣人王担负起了这个重任。洗完衣服后,你就要弄干衣服。衣服在自然条件下用1的时间可以晒干A点湿度。抠门的熊大妈买了1台烘衣机。使用烘衣机可以让你用1的时间使1件衣服除开自然晒干的A点湿度外,还可烘干B点湿度,但在1的时间内只能对1件衣服使用。 N件的衣服因为种种原因而不一样湿,现在告诉你每件衣服的湿度,要你求出弄干所有衣服的最少时间(湿度为0为干)。【输入格式】第一行N,A,B;接下来N行,每行一个数,表示衣服的湿度(1≤湿度,A,B≤500000
阅读全文
posted @
2012-10-25 20:53
怡红公子
阅读(471)
推荐(0)
题目:奥运大包围
摘要:题目描述题目描述:为了迎接奥运,市体育局举行手拉手大包围活动,开始时N个人手拉手围成一个圈。后来这些人中的一些按顺序向里面出圈形成一个新圈。从而使原圈形成一个从高到低,最低与最高连接的圈。新圈重复相同的操作,直到没有人要出圈为止。问最少要形成多少个这样的圈。输入格式输入:第一行N个人,第二行输入N个人的身高(每个身高中用空格隔开)N<=1000输出格式输出:最少形成多少个这样的圈。定理:下降子序列的个数等于最长不下降子序列的长度。稍微想一想就明白了。将圈拆成段枚举就是了。二分优化:最长不下降子序列的O(n*logn)算法话说和[NOIP1999]拦截导弹差不多,应该也可以用贪心。 1 #
阅读全文
posted @
2012-08-23 19:59
怡红公子
阅读(310)
推荐(0)
诺诺的队列
摘要:题目描述诺诺表现、成绩双优,于是校长给她一笔money,让她去外地玩玩。由于本地没有飞机场,所以诺诺只能坐火车去咯。所以诺诺今天去火车站买票,却看到了N多人在火车站里啊,诺诺一阵头晕。机灵的她突然发现,有N个人在队伍里(和上文的N毫无关系- -||),人们等得很无聊,于是他们开始转来转去,想在队伍里寻找自己的熟人。队列中任意两个人A和B,如果他们是相邻或他们之间没有人比A或B高,那么他们是可以互相看得见的。诺诺想计算出有多少对人可以互相看见,那么你能帮帮诺诺吗?本题数据范围:40%的测试数据:N≤10000;80%的测试数据:N≤100000;100%的测试数据:N≤500000。输入格式输入
阅读全文
posted @
2012-08-20 21:12
怡红公子
阅读(445)
推荐(0)
Fence Rails栅栏的木料
摘要:描述﹡﹡﹡﹡﹡农民John准备建一个栅栏来围住他的牧场。他已经确定了栅栏的形状,但是他在木料方面有些问题。当地的杂货储存商扔给John一些木板,而John必须从这些木板中找出尽可能多所需的木料。当然,John可以切木板。因此,一个9英尺的木板可以切成一个5英尺和一个4英尺的木料 (当然也能切成3个3英尺的,等等)。John有一把(完美的)梦之锯,因此他在切木料时,不会有木料的损失。所需要的栅栏长度可能会有重复(比如,一个3英尺和另一个3英尺长的栅栏可能同时都需要)。所需要的木料规格都已经给定。你不必切出更多木料,那没有用。格式PROGRAM NAME: fence8INPUT FORMAT:(
阅读全文
posted @
2012-07-06 19:24
怡红公子
阅读(585)
推荐(1)
最长不下降子序列的O(n*logn)算法
摘要:刚学习的新方法,求最长不下降子序列是DP等经典问题,本来O(n*n)的算法已经是够强了,但还存在O(n*logn)的算法。~\(≧▽≦)/~。分析如下:O(nlogn)的算法关键是它建立了一个数组c[],c[i]表示长度为i的不下降序列中结尾元素的最小值,用K表示数组目前的长度,算法完成后K的值即为最长不下降子序列的长度。 具体点来讲: 设当前的以求出的长度为K,则判断a[i]和c[k]: 1.如果a[i]>=c[k],即a[i]大于长度为K的序列中的最后一个元素,这样就可以使序列的长度增加1,即K=K+1,然后现在的c[k]=a[i]; 2.如果a[i]<c[k],那么就在c[1
阅读全文
posted @
2011-12-17 18:25
怡红公子
阅读(1554)
推荐(1)