算法习题
不论从事什么细分方向,基本的算法技术必须过关。这里记录我觉得很重要的题的题解,有转载有原创,希望能帮到大家,帮到自己
csdnicewing
PKU 软件所博士一枚 努力科研中
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
NOIP1998--拼数(伤心的字符串)
设有n个正整数(n≤20),将它们联接成一排,组成一个最大的多位整数。例如:n=3时,3个整数13,312,343联接成的最大整数为:34331213又如:n=4时,4个整数7,13,4,246联接成的最大整数为:7424613输入输出格式输入格式:第一行,一个正整数n。第二行,n个正整数。输出格式:一个正整数,表示最原创 2016-05-04 22:05:03 · 795 阅读 · 0 评论 -
Luogu1181数列分段
题目描述对于给定的一个长度为N的正整数数列A[i],现要将其分成连续的若干段,并且每段和不超过M(可以等于M),问最少能将其分成多少段使得满足要求。输入输出格式输入格式:输入文件divide_a.in的第1行包含两个正整数N,M,表示了数列A[i]的长度与每段和的最大值,第2行包含N个空格隔开的非负整数A[i],如题目所述。输出格式:原创 2016-05-02 13:17:06 · 474 阅读 · 0 评论 -
洛谷P1803凌乱的yyy
题目背景快noip了,yyy很紧张!题目描述现在各大oj上有n个比赛,每个比赛的开始、结束的时间点是知道的。yyy认为,参加越多的比赛,noip就能考的越好(假的)所以,他想知道他最多能参加几个比赛。由于yyy是蒟蒻,如果要参加一个比赛必须善始善终,而且不能同时参加2个及以上的比赛。输入输出格式输入格式:第一行是一个整数n ,原创 2016-05-02 15:07:35 · 488 阅读 · 0 评论 -
poj3181:藏坑的背包
Dollar DayzTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 5926 Accepted: 2234DescriptionFarmer John goes to Dollar Days at The Cow Store and discovers原创 2016-06-07 17:03:07 · 345 阅读 · 0 评论 -
NOIP2004Day1P2合并果子
例如有3种果子,数目依次为1,2,9。可以先将1、2堆合并,新堆数目为3,耗费体力为3。接着,将新堆与原先的第三堆合并,又得到新的堆,数目为12,耗费体力为12。所以多多总共耗费体力=3+12=15。可以证明15为最小的体力耗费值。输入输出格式输入格式:输入文件fruit.in包括两行,第一行是一个整数n(1输出格式:输出文件fruit.ou原创 2016-05-01 16:02:38 · 699 阅读 · 0 评论 -
poj2286无线网络
坑死我了,原来时间限制是10s。既然这样那就很简单了,每修复一个电脑,遍历所有电脑,能连接就连接。并查集,并炸鸡……我这只鸡……上代码:#include#includeusing namespace std;const int maxn = 1010;struct node{ int x, y;} p[1010];bool isr[maxn];原创 2016-05-12 22:35:02 · 405 阅读 · 0 评论 -
码农的泪——二分答案总结
这种二分答案的思路,大同小异,最主要的掌握核心:控制哪个是最接近最优解的可行解,然后就需要灵活处理,看最后的情况。原创 2016-05-15 14:20:20 · 662 阅读 · 0 评论 -
最长回文子串(转载自网易博客:鼻子很帅的猪)
原文链接:http://blog.163.com/zhaohai_1988/blog/static/2095100852012716105847112/感谢神犇提供算法,愿OI永葆活力最长回文子串 2012-08-16 10:58:47| 分类: 算法、数据结构 | 标签:算法数据结构 面试 |举报|字号 订阅转载 2016-04-22 12:53:26 · 346 阅读 · 0 评论 -
POJ3122 Pie(二分)
题意很简单,有N个派,让把派切成瞪大的块至少F+1份,问能多大思路:二分答案即可注意:此题精度极高,必须用PI=4*atan(1.0)。吐槽:百练有毒,百练有毒,百练有毒!重要的事情说三遍!附代码:#include#include #include #include using namespace std;int n,f,cnt,testcase;const doubl原创 2017-09-15 11:46:07 · 316 阅读 · 0 评论 -
NOIP2007普及组 纪念品分组 贪心
题目描述元旦快到了,校学生会让乐乐负责新年晚会的纪念品发放工作。为使得参加晚会的同学所获得 的纪念品价值相对均衡,他要把购来的纪念品根据价格进行分组,但每组最多只能包括两件纪念品, 并且每组纪念品的价格之和不能超过一个给定的整数。为了保证在尽量短的时间内发完所有纪念品,乐乐希望分组的数目最少。你的任务是写一个程序,找出所有分组方案中分组数最少的一种,输出最少的分组数目。输入原创 2016-05-02 14:35:18 · 4198 阅读 · 0 评论 -
信息竞赛学习笔记:POJ3579中位数(二分)
MedianTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 5066 Accepted: 1618DescriptionGiven N numbers, X1, X2, ... , XN, let us calculate the difference o原创 2015-12-29 20:40:13 · 1005 阅读 · 0 评论 -
noip2009靶形数独题解 转自middlesch_nce24的微博http://blog.sina.com.cn/s/blog_5d0d0f450100jm6u.html#
转自http://blog.sina.com.cn/s/blog_5d0d0f450100jm6u.html#感谢middlesch_nce24看完这道题,我觉得我深搜白学了Noip2009靶形数独解题报告(位运算版) 实现方法:搜索转载 2016-05-04 22:23:18 · 1487 阅读 · 0 评论 -
五大常用算法之一:分治算法
转自http://www.cnblogs.com/steven_oyj/archive/2010/05/22/1741370.html,感谢红脸书生神牛分治算法一、基本概念 在计算机科学中,分治法是一种很重要的算法。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,转载 2016-07-04 09:17:27 · 252 阅读 · 0 评论 -
usaco混合牛奶
题目在洛谷P1208这道题也是贪心,先买价最低的。代码如下//题目在洛谷P1208#include#include#includeusing namespace std;struct Data{ int sum,price;} farm[5010];int n,m;bool compare(Data a,Data b){原创 2016-05-02 13:35:10 · 478 阅读 · 0 评论 -
poj2010 二分做法
Moo University - Financial AidTime Limit: 1000MS Memory Limit: 30000KTotal Submissions: 7491 Accepted: 2159DescriptionBessie noted that although humans have many原创 2016-06-12 20:55:25 · 541 阅读 · 0 评论 -
洛谷P1223排队接水
贪心。注意1:数据规模 T要用long long 或double,二,数据形式转换,整型除以整型是要取整的剩下的就是A了#include#include#includeusing namespace std;int tim[1010];int n;struct P{ int time,id;} p[2010];bool com(P a,P b)原创 2016-05-02 14:02:11 · 454 阅读 · 0 评论 -
poj3723 招兵 最大权森林
这是《编程挑战》的一道例题,证明网上大神很多都做了,我就简单说一下易错点吧。第一点,这个人是从0开始查的,所以并查集初始化别忘了0.第二点,这道题的克鲁斯卡尔要把所有的边都遍历一遍。因为这个图不一定是连通图,所以G(V,E)最后的边数可不一定是V-1,而遍历所有的边就能克服这个矛盾。第三点,对于每次对a和b是否在同一个集合的查询,一定要再做一次gf(a),gf(b),这样才能保证如果a原创 2016-05-16 20:49:49 · 270 阅读 · 0 评论 -
【动态规划】【Dilworth定理】AOJ 0033 Ball #挑战程序设计竞赛
题目大意有n个序列,每个序列长度都是10且每个序列中元素互不相同,简单记录为x1,x2,...,x10x_1,x_2,...,x_{10}x1,x2,...,x10问每个序列可不可以划分这样两个集合,其中每个集合中任意两个元素都满足xi<xj&&i<jx_i < x_j \quad \&\&\quad i < jxi<xj&&i<j对每个序列,可以按照上述条件划分,则输出YES,否则输出NO。原创 2020-07-09 20:57:16 · 293 阅读 · 0 评论
分享