07 2016 档案

摘要:描述 N位同学站成一排,音乐老师要请其中的(N-K)位同学出列,使得剩下的K位同学排成合唱队形。 合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1,2…,K,他们的身高分别为T1,T2,…,TK, 则他们的身高满足T1<...<Ti>Ti+1>…>TK(1<=i<=K)。 你的任务是,已知 阅读全文
posted @ 2016-07-28 20:41 阿波罗2003 阅读(3113) 评论(0) 推荐(0) 编辑
摘要:题目描述 Description 津津的零花钱一直都是自己管理。每个月的月初妈妈给津津300元钱,津津会预算这个月的花销,并且总能做到实际花销和预算的相同。 为了让津津学习如何储蓄,妈妈提出,津津可以随时把整百的钱存在她那里,到了年末她会加上20%还给津津。因此津津制定了一个储蓄计划:每个月的月初, 阅读全文
posted @ 2016-07-28 18:41 阿波罗2003 阅读(223) 评论(0) 推荐(0) 编辑
摘要:Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)Total Submission(s): 51758 Accepted Submission(s): 16671 Problem Des 阅读全文
posted @ 2016-07-26 17:52 阿波罗2003 阅读(222) 评论(0) 推荐(0) 编辑
摘要:这道题有多种解法,我用的是扩展欧几里得算法求到的答案 这道题把第i个人看做一个有序的序列(1、2、3、4....)然后二分 至于求和,就像这么处理: 、 接着从前面开始求和。。。 就像这样可以求出每一天的教室使用量,如果1 ~ v天中有哪一天不够用了,就在前半段 查找,如果都足够,就向后面查找,每次 阅读全文
posted @ 2016-07-22 21:38 阿波罗2003 阅读(189) 评论(0) 推荐(0) 编辑
摘要:1.无线网络发射器选址 这道题数据范围很小,就直接暴力枚举就好了。为了提高速度,就从每个有公共场所的点枚举周围在(x,y)放无线网路发射器可以增加的公共场所数量,加到一个数组里。所有公共场所都处理完了后,把这个数组扫一遍,边扫边得到最大值和个数。 其实可以用二维前缀和优化一下更快。 Code: 2. 阅读全文
posted @ 2016-07-21 19:29 阿波罗2003 阅读(197) 评论(0) 推荐(0) 编辑
摘要:Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 15406 Accepted Submission(s): 9766 Problem Descr 阅读全文
posted @ 2016-07-19 21:08 阿波罗2003 阅读(189) 评论(0) 推荐(0) 编辑
摘要:Description Two positive integers are said to be relatively prime to each other if the Great Common Divisor (GCD) is 1. For instance, 1, 3, 5, 7, 9... 阅读全文
posted @ 2016-07-19 20:23 阿波罗2003 阅读(441) 评论(0) 推荐(0) 编辑
摘要:Description Farmer John completed his new barn just last week, complete with all the latest milking technology. Unfortunately, due to engineering prob 阅读全文
posted @ 2016-07-18 21:33 阿波罗2003 阅读(230) 评论(0) 推荐(0) 编辑
摘要:题目描述 现在我们的手头有N个软件,对于一个软件i,它要占用Wi的磁盘空间,它的价值为Vi。我们希望从中选择一些软件安装到一台磁盘容量为M计算机上,使得这些软件的价值尽可能大(即Vi的和最大)。但是现在有个问题:软件之间存在依赖关系,即软件i只有在安装了软件j(包括软件j的直接或间接依赖)的情况下才 阅读全文
posted @ 2016-07-18 21:24 阿波罗2003 阅读(202) 评论(0) 推荐(0) 编辑
摘要:现在讲一下指针的主要用途和常见错误。 [用途] 1.用作形参 首先,常见新手写交换函数: 主函数里调用一下试试,看看a,b的值有没有改变? 运行结果就不公布了,对于新手,有木有发现什么不对的地方? 是什么原因造成这个结果的呢?应该是内存地址吧,要同一内存地址修改其中一个的值 才会改变另一个的值,那来 阅读全文
posted @ 2016-07-16 21:47 阿波罗2003 阅读(240) 评论(0) 推荐(0) 编辑
摘要:描述 “每个人都拥有一个梦,即使彼此不相同,能够与你分享,无论失败成功都会感动。爱因为在心中,平凡而不平庸,世界就像迷宫,却又让我们此刻相逢Our Home。” 在爱的国度里有N个人,在他们的心中都有着一个爱的名单,上面记载着他所爱的人(不会出现自爱的情况)。爱是具有传递性的,即如果A爱B,B爱C, 阅读全文
posted @ 2016-07-16 21:30 阿波罗2003 阅读(486) 评论(0) 推荐(0) 编辑
摘要:【问题描述】 一年一度的科技节即将到来。同学们报名各项活动的名单交到了方克顺校长那,结果校长一看皱了眉头:这帮学生热情竟然如此高涨,每个人都报那么多活动,还要不要认真学习了?!这样不行!……于是,校长要求减少一些活动,使每位学生只能参加一项(一名同学要参加某活动,必须已报名且该活动未被去掉)。当然, 阅读全文
posted @ 2016-07-15 21:41 阿波罗2003 阅读(262) 评论(0) 推荐(0) 编辑
摘要:【问题描述】 大COS在氯铯石料场干了半年,受尽了劳苦,终于决定辞职。他来到表弟小cos的寒树中学,找到方克顺校长,希望寻个活干。 于是他如愿以偿接到了一个任务…… 美丽寒树中学种有许多寒树。方克顺希望校园无论从什么角度看都是满眼寒树,因此他不希望有三棵甚至更多寒树种在一条直线上。现在他把校园里n棵 阅读全文
posted @ 2016-07-15 20:20 阿波罗2003 阅读(307) 评论(0) 推荐(0) 编辑
摘要:【问题描述】 小sin所在的班有n名同学,正准备排成一列纵队,但他们不想按身高从矮到高排,那样太单调,太没个性。他们希望恰好有k对同学是高的在前,矮的在后,其余都是矮的在前,高的在后。如当n=5,k=3时,假设5人从矮到高分别标为1、2、3、4、5,则(1,5,2,3,4)、(2,3,1,5,4)、 阅读全文
posted @ 2016-07-15 19:37 阿波罗2003 阅读(246) 评论(0) 推荐(1) 编辑
摘要:LGTB 最近在玩一个类似DOTA 的游戏名叫THD 有一天他在守一座塔,对面的N 个小兵排成一列从近到远站在塔前面每个小兵有一定的血量hi,杀死后有一定的金钱gi 每一秒,他都可以攻击任意一个活着的小兵,对其造成P 点伤害,如果小兵的血量低于1 点,小兵死亡,他得到金钱。他也可以不攻击任何小兵。 阅读全文
posted @ 2016-07-14 22:06 阿波罗2003 阅读(236) 评论(0) 推荐(0) 编辑
摘要:在指针2中提到了怎么用指针申配内存,但是,指针申配的内存不会无缘无故地 被收回。很多poj上的题都是有多组数据,每次地数组大小会不同,所以要重新申请 一块内存。但是原来的内存却不会被收回,也是说2、3组数据玩下去就 MemoryLimitExceeded,所以需要释放指针指向的内存(只要不是什么黑心 阅读全文
posted @ 2016-07-14 17:37 阿波罗2003 阅读(244) 评论(0) 推荐(0) 编辑
摘要:Description Chosen Problem Solving and Program design as an optional course, you are required to solve all kinds of problems. Here, we get a new probl 阅读全文
posted @ 2016-07-13 15:17 阿波罗2003 阅读(242) 评论(0) 推荐(0) 编辑
摘要:积木大赛: 之前没有仔细地想,然后就直接暴力一点(骗点分),去扫每一高度,连到一起的个数,于是2组超时 先把暴力程序贴上来(可以当对拍机) 然而用样例来举个例子 当第i列的目标高度比第(i-1)高的时候,很容易发现,需要多耗费(h[i]-h[i - 1])次操作,因为在操作使第(i-1)列达到目标高 阅读全文
posted @ 2016-07-12 20:48 阿波罗2003 阅读(184) 评论(0) 推荐(0) 编辑
摘要:首先呢,讲讲数组 数组就是一连串的地址对不对?所以它们的地址是紧挨着的 1 | 2 | 3 | 4 | 2 | 0 1 2 3 4 那我们把一个数组的首地址赋给一个指针变量 我们输输*p,很容易就能发现它是数组的0号下表 那如果要利用p去输输a[1]怎么输呢? 运行结果是2,说明指针类型可以被强转成 阅读全文
posted @ 2016-07-11 22:04 阿波罗2003 阅读(153) 评论(0) 推荐(0) 编辑
摘要:指针算是一种特殊的变量,它存储的是一个内存地址,你既可以通过它来给制定内存地址赋值 (可能会被操作系统收回或者与其它程序冲突),又可以提高运行速度 First Step: 声明一个指针变量 貌似只用在变量后面加一个*就行了 那这又有什么区别: 虽然这样没有什么区别, 但是,这样的话,编译器看起来就不 阅读全文
posted @ 2016-07-11 21:42 阿波罗2003 阅读(160) 评论(0) 推荐(0) 编辑
摘要:背景 Yours和zero在研究A*启发式算法.拿到一道经典的A*问题,但是他们不会做,请你帮他们. 描述 在3×3的棋盘上,摆有八个棋子,每个棋子上标有1至8的某一数字。棋盘中留有一个空格,空格用0来表示。空格周围的棋子可以移到空格中。要求解的问题是:给出一种初始布局(初始状态)和目标布局(为了使 阅读全文
posted @ 2016-07-11 21:14 阿波罗2003 阅读(382) 评论(0) 推荐(0) 编辑
摘要:快速幂基于分治,同底幂数的乘法:$a^{m}\times a^{n} = a^{m + n}$。所以我们可以得到$a^{n} = a^{\frac{n}{2}}\times a^{\frac{n}{2}}$,看起来好像没有错。不过不要忘了,我们的快速幂貌似不怎么支持一个数的小数次幂。 所以需要进行讨 阅读全文
posted @ 2016-07-11 15:30 阿波罗2003 阅读(296) 评论(3) 推荐(1) 编辑
摘要:1.转圈游戏: 解析部分略,快速幂就可以过 Code: 1 #include<iostream> 2 #include<fstream> 3 using namespace std; 4 ifstream fin("circle.in"); 5 ofstream fout("circle.out") 阅读全文
posted @ 2016-07-11 14:28 阿波罗2003 阅读(204) 评论(0) 推荐(0) 编辑
摘要:描述 在古埃及,人们使用单位分数的和(形如1/a的, a是自然数)表示一切有理数。如:2/3=1/2+1/6,但不允许2/3=1/3+1/3,因为加数中有相同的。对于一个分数a/b,表示方法有很多种,但是哪种最好呢?首先,加数少的比加数多的好,其次,加数个数相同的,最小的分数越大越好。 如:19/4 阅读全文
posted @ 2016-07-10 17:45 阿波罗2003 阅读(851) 评论(0) 推荐(1) 编辑
摘要:深度优先搜索不可以解决深度未知的题,例如埃及分数(vijos 1308) 如果用广度优先搜索的话,每一层的节点数都可以是无穷个,怎么找? 这样通常就会用迭代加深来处理 迭代加深相当于是广搜和深搜的结合,它是限定下界的深搜,首先搜索 第K层,若无目标解,则搜索第(K+1)层,直到找到目标解为止 [特点 阅读全文
posted @ 2016-07-10 17:29 阿波罗2003 阅读(180) 评论(0) 推荐(0) 编辑
摘要:深度优先搜索(dfs)是利用递归完成的以搜索深度优先的搜索 通常大概是这样的: 特点: 1.内存消耗小(不像广搜需要保存节点数) 2.题目的数据范围较小(例如noip普及组某年的一道题“子矩阵”) 3.耗时较长(函数的调用和返回会耗时,盲目地去枚举所有情况) 4.无法处理深度不能确定的题(例如vij 阅读全文
posted @ 2016-07-10 11:25 阿波罗2003 阅读(186) 评论(0) 推荐(0) 编辑
摘要:今天又复习了一下高精度(高精度减、加、乘) 仍然用结构体来存储 数据结构: typedef struct HP{ int w[10001] //储存数据,0下标储存有多少位 }HP; 注意:高精度为了进位需要反着存储 例如:原数 a 123 -int 高精度数 b 3 |2|1 –int[] 先将最 阅读全文
posted @ 2016-07-10 11:02 阿波罗2003 阅读(715) 评论(1) 推荐(1) 编辑