POJ
文章平均质量分 76
chAngE_AC
这个作者很懒,什么都没留下…
展开
-
poj-3258 River Hopscotch (二分)
题意:奶牛过河游戏,河上有N块石头,河的总宽度为L,一位农夫感觉每个石头之间的间距太小了,所以他想通过移除M块石头来使最小的间距最大化。求最大化后的最小距离(姑且是这个题意吧,英语菜)思路:通过二分枚举答案,使low=0,high=L,我们在得到石头的位置数组a[1...n]之后加入a[0]=0,a[n+1]=L然后排序。每次二分初始化一个区间左端点p=0,然后对于a[i]-a[p] i=1.原创 2016-02-18 15:58:27 · 435 阅读 · 0 评论 -
poj-3253-Fence Repair-优先队列(哈夫曼树)
DescriptionFarmer John wants to repair a small length of the fence around the pasture. He measures the fence and finds that he needsN (1 ≤ N ≤ 20,000) planks of wood, each having some integer le原创 2015-08-12 16:03:42 · 611 阅读 · 0 评论 -
poj-1129 Channel Allocation
题意:广播电台分布在一个很大的地方,每个广播电台为了受到更强的信号会使用一个中继器,而每个相邻的广播电台之间如果使用相同的中继器会干扰信号。问最少需要多少个中继器可以让所有广播电台使用并不相互影响。 思路:该题可以模拟成涂色问题,每个相邻的区域不能涂相同的颜色。这也就会想到著名的四色原理。根据四色原理对每个区域只需要枚举4种情况即可。每个点只枚举一次,DFS里其实并没有回溯的过原创 2015-08-21 15:01:08 · 327 阅读 · 0 评论 -
poj-2299 Ultra-QuickSort 归并排序求逆序数
DescriptionIn this problem, you have to analyze a particular sorting algorithm. The algorithm processes a sequence of n distinct integers by swapping two adjacent sequence elements until the seque原创 2015-08-10 19:37:06 · 1084 阅读 · 0 评论 -
poj-2676 Sudoku
题意:数独,一种数学游戏。规则:空白处填入数字,使数独的每一行,每一列,每个宫格中没有重复数字。 思路:该题DFS暴搜就能过,数据比较水,真正厉害的数独题是3074(本人目前无力AC)。#include #include #include #include #include #include #define INF 0x3f3f3f3f#define mod 10原创 2015-08-20 14:31:22 · 500 阅读 · 0 评论 -
poj-1035 Spell checker
DescriptionYou, as a member of a development team for a new spell checking program, are to write a module that will check the correctness of given words using a known dictionary of all correct words原创 2015-08-10 19:04:03 · 383 阅读 · 0 评论 -
poj-3080 Blue Jeans
DescriptionThe Genographic Project is a research partnership between IBM and The National Geographic Society that is analyzing DNA from hundreds of thousands of contributors to map how the Earth was原创 2015-08-10 19:10:02 · 1287 阅读 · 0 评论 -
poj-1416 Shredding Company DFS
题意:有一个碎纸机,给你一个最多有6位数的纸片,需要让你将纸片切开,使得切开的纸片的数值和最接近或等于target值。输入target和纸片,输出最接近target的值和纸片的切法。特殊规则:如果纸片的值和target相等,那么不用切开。如果所有情况下都不存在小于target的切法,那么输出error。如果最终的答案有多种,那么输出rejected。 思路:DFS搜索所有切开纸片原创 2015-08-20 14:05:23 · 556 阅读 · 0 评论 -
poj-3414 Pots BFS
题意:有1,2两个杯子,你需要对杯子进行操作,操作包括fill填满,pour(1,2)将1倒入2种或反过来,drop倒出所有水。求出使两个杯子中出现指定量C的水需要多少步操作,并且输出操作步骤 思路:BFS对六种操作进行搜索,和以往不同的需要在结构体里加一个数组来记录操作(本人用1-6编号进行记录)。输出时对应记录输出步骤即可。#include #include #inc原创 2015-08-19 13:43:44 · 460 阅读 · 0 评论 -
poj-1094 Sorting It All Out
DescriptionAn ascending sorted sequence of distinct values is one in which some form of a less-than operator is used to order the elements from smallest to largest. For example, the sorted sequence原创 2015-08-06 17:33:59 · 359 阅读 · 0 评论 -
poj-2531 Network Saboteur DFS
题意:有n个点,把这些点分别放到两个集合里,在两个集合的每个点之间都会有权值,求最大的两集合间权值和。如果用图论解释的话,就是求两个完全图之间最大割边和。 思路:DFS枚举所有集合分配的情况。累加两集合间边的权值。找出最大和。#include #include #include #include #include #define INF 0x3f3f3f3f#de原创 2015-08-19 15:46:24 · 442 阅读 · 0 评论 -
poj-2513 Colored Sticks
DescriptionYou are given a bunch of wooden sticks. Each endpoint of each stick is colored with some color. Is it possible to align the sticks in a straight line such that the colors of the endpoints原创 2015-08-17 09:32:01 · 350 阅读 · 0 评论 -
poj-2418 Hardwood Species
题目数据很长就不放描述了。 题意:美国有各种各样不同的树木,你需要输入树木的名字,并且最后统计出每种树木所占的比例,并按字典序输出。思路:字典树存储树的名字,统计每种树木的数量。除以输入数据的数量得到比例,最后输出即可,本题没有什么很难的算法,读懂题意就可以AC。#include #include #include #include #include using原创 2015-08-17 09:50:31 · 738 阅读 · 0 评论 -
poj-3126 Prime Path
题目描述其实就是篇小故事,不多解释直接说明题意。题意要求给两个4位的素数,求出将前一个素数转化为后一个素数需要的步数。一次只能改变一位数字,且保证每次改变得到的数都是素数 思路:用BFS暴搜,每次改变一位数如果是素数就进入队列,但是暴搜的前提要把1w以内的素数筛出来。为了方便对每一位上的数的操作,本人用的字符串来储存4位数字。#include #include #include原创 2015-08-19 09:16:24 · 489 阅读 · 0 评论 -
poj-1125 Stockbroker Grapevine
DescriptionStockbrokers are known to overreact to rumours. You have been contracted to develop a method of spreading disinformation amongst the stockbrokers to give your employer the tactical edge i原创 2015-08-06 17:08:20 · 468 阅读 · 0 评论 -
poj-3687 Labeling Balls
DescriptionWindy has N balls of distinct weights from 1 unit to N units. Now he tries to label them with 1 toN in such a way that: No two balls share the same label.The labeling satisfies原创 2015-08-06 19:42:31 · 311 阅读 · 0 评论 -
poj-1442 Black Box
题意:为了方便我通过解释输入数据来解释题意。输入两个数M表示序列长度,N表示输入N个数表示当前序列插入了几位,例如n=1序列里插入了3,n=6序列里插入了3 1 -4 2 8 -1000,对于第i个输入的n输入当前插入的序列中第i小的数,也就是前i小的数中最大的数。 思路:使用两个优先队列,递减队列中存前i小的数,递增队列中存剩下的数。每次输入n,就先向递增队列中压入n个数,然后原创 2015-08-21 15:15:48 · 668 阅读 · 0 评论 -
poj-1276 Cash Machine 多重背包
题意:我们需要去取款机取钱,而取款机内钱的种类和数量是有限的,最后要求出我们最多能取到多少钱。 思路:很明显的多重背包问题。对于这个题最普通的01背包限制次数的写法是一定会超时的,所以我们需要去优化,两个优化方法,一个是二进制优化,另一个是完全背包限制次数。这3种方法的代码都会在后面发出来。TLE代码(01背包限制次数)#include #include #inclu原创 2015-08-21 15:59:47 · 562 阅读 · 0 评论 -
poj-3112 Pie
题意:某人过生日,他的朋友来他家参加party并且每人都拿来一块pie,现在需要把pie都分开让每个人都能享用,并且一定保证完整性,为了能公平的分给每个人,就算浪费也可以。问最多每个人可以得到多少体积的pie思路:由于需要求圆柱体积所以π是一个问题,我们先把所有体积里的π提出来,然后二分枚举R^2(也就是体积),最后再乘上π即可。(注意π的精度需要很高)#include #include原创 2016-02-27 14:53:30 · 520 阅读 · 0 评论 -
poj-3273 Monthly Expense (二分)
题意:一共有n天的消费情况,让你分成m段,使得这m段都尽量的小,最后输出最大的那段的值。思路:直接二分枚举一段里的值,每举出一个就来检测在该值下连续分段分出的段数,如果段数大那么答案需要大于该值,如果小,那么答案需要小于该值。#include #include #include #include #define LL long longusing namespace std;原创 2016-02-27 14:44:56 · 620 阅读 · 1 评论 -
poj-1905 Expanding Rods (二分)
题意:一个板子加在两个墙之间,如果加热它,那么它就会向上弯曲,并且给出弯曲后长度的变化公式 L'=(1+n*C)*L。求变化后板子的最高处离原位置多高。思路:普通几何题,各种做辅助线,之后设升高度为h通过h,l,r三者勾股定理得到一个等式。之后我们需要意识到的是c++里有三角函数,我们可以通过l,r求出扇形区域圆心角角度,用arcsin转化为弧度后可建立高度h与弯曲长度L’的关系。之后二分原创 2016-02-27 14:30:00 · 401 阅读 · 0 评论 -
poj-1364 King
题意:各种背景就不解释了,直接描述问题,给你一个序列a1~an从中取出一个子序列a[si]~a[si+ni](题目打印的有点容易歧义)对每一个子序列求和然后给定一个约束,约束分为两种"gt"表示a[si]+a[si+1]+。。+a[si+ni]>ki "lt"是a[si]+a[si+1]+。。+a[si+ni]输入包含有si,ni,约束条件,ki思路:我们令Sn数组表示从a0加到an。由a原创 2016-01-28 17:25:59 · 323 阅读 · 0 评论 -
poj-1185 炮兵阵地
中文题意不解释,由于一行最多10位也就是一行中所有状态只有1000+,并且根据题目描述每一个炮的周围左右两位是不能放第二个的,所以我们可以再缩小状态数量,最后大约60+。炮的上下也是不能放第二个炮的所以我们可以知道,当前的状态会与之前两个状态有关,由于我们缩小了可用状态的数量我们可以对于每一行,枚举当前行和前两行的状态,根据状态的相关性我们可以得到状态转移方程。dp[i][j][k]=max(dp原创 2016-02-25 17:15:13 · 374 阅读 · 0 评论 -
poj-2411 Mondriaan's Dream (状态压缩dp)
题意:给你一个h*w的矩阵,让你使用一个1*2的板子把矩阵覆盖完全,不能重叠且不能有空缺,问有多少种覆盖方法。思路:首先我们可以知道木板的摆放有3种方法,横着放,竖着放,不放。 我们设定横着放占两格状态为11,不放占一格为0,竖着的情况特殊处理,因为它占了两行,我们设定上一行为0下一行为1使得对下一行的位置产生影响并且在上一行有所标记。我们可以用dfs来枚举所有的两行间情况。原创 2016-02-21 10:37:02 · 447 阅读 · 0 评论 -
poj-3007 Organize Your Train part II
题意很好理解,看图都能懂,就不解释了。关键就在于训练计划上的分类,神马标准模板库的应用都是骗人的,不过小用一点也是能过的,不过时间就是800,900的。总之一点也不用c++库函数就稳稳的对。本人是用的c的一些字符串函数,然后字典树来哈希。用高效的字符串哈希函数也可以。#include #include #include #include #include #include #inc原创 2016-02-21 08:30:36 · 1994 阅读 · 0 评论 -
poj-3159 Candies
题意:n个人派发糖果,m组数据包含A,B,C表示B比A糖的数量不会多于C。最后求n比1最多多多少糖。思路:很明显的差分约束,约束条件为B-A#include #include #include #include #include #include #include #define INF 0x3f3f3f3f#define mod 100000000using names原创 2016-01-27 21:18:42 · 379 阅读 · 0 评论 -
poj-2983 Is the Information Reliable? 差分约束+判负环
题意:给定了n个位点,有m个对这些位点的描述,其中P A B C 表示位点A在B的北边C光年处,V A B表示AB间距离关系不确定,A最少在B的北边1光年处。在m个描述结束后需要你判断这些描述是否合理。思路:我们可以得到约束条件A-B>=C||1 B-A>=-C,即在关系明确时建立一条AB间来回的有向边,表示从A到B的-C距离关系和B到A的+C距离关系,如果关系不明确就建立一个单向的由A到B权原创 2016-01-27 20:45:31 · 334 阅读 · 0 评论 -
poj-1201 Intervals
题意:给定n个整数闭区间[ai,bi]和n个整数c1-cn,求一个最小的整数集合Z,使得Z里面的数中范围在闭区间[ai,bi]的个数不小于ci个。思路:首先我们可以知道在ai到bi区间内整数的个数为S[bi]-S[ai-1](S[i]为从0到I的所有整数个数)我们可以得到约束条件,S[bi]-S[ai-1]>=ci可转换为S[ai-1]-S[bi]其实还有两个隐藏的条件1)S[i]-S原创 2016-01-27 20:25:24 · 251 阅读 · 0 评论 -
poj-3254 Corn Fields 状态压缩dp
题意:一农民有一片N*M的地,地里的土地有的肥沃有的不肥沃,0表示不肥沃,1相反。农民需要往这片地里放养牛,一只牛只能在一块1*1的地里且只在肥沃的地里。牛的数量不限,问这片地里能有多少种放牛的情况。思路:首先能确定这是一道dp题,为了简化dp的状态存储,使用了状态压缩,我们可以用一个二进制数来表示一行中土地是否肥沃的情况或者表示一行里能放牛的所有情况,题中说明一行最多12个地那么我们用一个1原创 2016-01-27 08:35:03 · 372 阅读 · 0 评论 -
poj 2706 Connect
题意:给你一个N+1*N+1的棋盘(从0到N),给定了这局棋的下棋过程,黑子先下,且总的下棋步数为奇数,也就保证最后一个下的是黑棋。其中,每下一步棋如果它的周围(中国象棋或是国际象棋中一个日字的走法)8个点存在同色的棋,并且两个棋之间没有其他棋子连线所拦,那么就将这连个棋子连线。如果黑棋从左边界到右边界有一条线贯穿或白棋从上边界到下边界有一条线贯穿,贯穿的那方就获得胜利。原题意为问黑子的最后一步是原创 2016-01-24 19:54:32 · 491 阅读 · 0 评论 -
poj-1472 Instant Complexity
题意不多说,直接解释需要模拟的东西吧。题目中会给你一段题中创造的程序,这个程序除了最开始的BEGIN到END,内部就是从LOOP到END,中间的所有OP或者是其他嵌套的程序都是相加关系,最后的LOOP x是将内部的式子乘x,拿输入样例举例BEGIN LOOP n OP 4 LOOP 3 LOOP n OP 1 EN原创 2016-01-24 09:16:17 · 309 阅读 · 1 评论 -
poj 3321 Apple Tree
题意:一颗苹果树,树上有n个树枝节点,一个节点有一个苹果,有n-1个树枝。模型是即n个点n-1条边的树,叉数不定。对这棵树可进行两种操作,其中Q x是询问第x节点上子树的苹果个数,C x是如果x节点上有苹果,就会被拿掉,如果没有,树就会长出苹果。思路:本题关键就在于建立树和树状数组的映射关系。对于每一个树枝节点,我们需要知道的就是它的管辖范围,即它下面包括自己一共管了多少个节点,并且指定到具体原创 2016-01-22 17:15:23 · 806 阅读 · 0 评论 -
poj 1195 Mobile phones
题目看起来就像一个模拟题,对于一个s*s的矩阵有4个操作,输入0时将s*s的矩阵清零,输入1时将坐标为x,y的点增加a,输入2时求从r到l从b到t一个子矩阵的所有项和。题目只有一组数据但是有庞大的操作次数,所以普通的二维数组是要超时的,于是我们为了加快对其中数据和访问的速度,使用树状数组。我最开始做这道题的时候先看了一维的树状数组,然后就用一维的写了一发,4000+ms不过也过了,后来发现有二维树原创 2016-01-22 14:53:18 · 323 阅读 · 0 评论 -
poj-2240 Arbitrage
DescriptionArbitrage is the use of discrepancies in currency exchange rates to transform one unit of a currency into more than one unit of the same currency. For example, suppose that 1 US Dollar bu原创 2015-08-06 17:17:59 · 526 阅读 · 0 评论 -
poj-2151 Check the difficulty of problems 概率+DP
DescriptionOrganizing a programming contest is not an easy job. To avoid making the problems too difficult, the organizer usually expect the contest result satisfy the following two terms:1. All o原创 2015-08-17 09:19:55 · 469 阅读 · 1 评论 -
poj-1426 Find The Multiple
DescriptionGiven a positive integer n, write a program to find out a nonzero multiple m of n whose decimal representation contains only the digits 0 and 1. You may assume that n is not greater than原创 2015-08-18 19:44:33 · 359 阅读 · 0 评论 -
poj-3349 Snowflake Snow Snowflakes
DescriptionYou may have heard that no two snowflakes are alike. Your task is to write a program to determine whether this is really true. Your program will read information about a collection of s原创 2015-08-12 15:49:32 · 923 阅读 · 0 评论 -
poj-1573 Robot Motion
DescriptionA robot has been programmed to follow the instructions in its path. Instructions for the next direction the robot is to move are laid down in a grid. The possible instructions are原创 2015-07-30 11:12:42 · 604 阅读 · 0 评论 -
poj-1789 Truck History
DescriptionAdvanced Cargo Movement, Ltd. uses trucks of different types. Some trucks are used for vegetable delivery, other for furniture, or for bricks. The company has its own code describing each原创 2015-07-30 19:57:57 · 507 阅读 · 0 评论 -
poj-2632 Crashing Robots
DescriptionIn a modernized warehouse, robots are used to fetch the goods. Careful planning is needed to ensure that the robots reach their destinations without crashing into each other. Of course, a原创 2015-07-30 14:43:51 · 518 阅读 · 0 评论