自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

便纵有千种风情

更与何人说

  • 博客(49)
  • 收藏
  • 关注

原创 UVA - 12169 Disgruntled Judge

先枚举a,根据x[1]和x[3]的值可以通过exgcd求出b,然后判断x[1]、a、b生成的数列是否和给出的吻合。#include#include#include#include#include#includeusing namespace std;typedef long long ll;const int INF =0x3f3f3f3f;const int max

2016-03-31 09:35:26 257

原创 UVA - 1608 Non-boring sequences 分治"中途相遇"

没想到用map离散化比排序离散化来得快这么多,用排序的方法离散化会超时。对于一个序列,如果所有出现的值都是不止一个,那么boring,结束否则找到任意一个单独出现一次的值,以该位置左右两边为子区间进行分治/递归。#include#include#include#include#include#include#includeusing nam

2016-03-30 18:13:18 353

原创 UVA - 12174 Shuffle 滑动窗口的应用。

#include#include#include#include#include#includeusing namespace std;typedef long long ll;const int INF =0x3f3f3f3f;const int maxn= 100000 ;int s,n;int num[maxn+5],a[maxn+5];bool ok[2*max

2016-03-29 17:59:17 366

原创 USACO 2005 Cleaning Shifts 带权区间调度、覆盖问题 单调栈优化dp

首先,根据区间右端点从小到大的顺序对区间排序,之后以区间为阶段进行线性动归。dp[x]的意义是第x个区间为最后一个区间,从开始时间到a[x].ri这段时间的最小花费。计算dp[x]的时候,是找一个前面存在的p,使得   a[x].le -1根据计算的顺序,维护一个只入队,不出队的单调递增队列,配合二分查找 即可快速完成 查找最优解的任务。时间复杂度O

2016-03-27 13:01:26 648

原创 uvaLive 3222 Joke with Turtles 带权区间调度、覆盖问题 等价转换+线性动归

带权的区间调度问题,贪心似乎不好解决,一般的方法是动态规划题目:点我细节分析: 对于一个乌龟说的话,前面有a个乌龟,后面有b个乌龟,意为 该乌龟可能是第[a+1,n-b]名。题目解法:一个区间表示了一个名次,区间的长度表示这个名次有多少人。给区间附上权值,如果有x个人的名次为区间[a,b],那么区间[a,b]的权值val为

2016-03-25 21:25:59 827

原创 NYOJ 题目12 喷水装置(二) 最小区间覆盖问题

先对喷水器进行筛选,把不合格的去掉,然后将喷水器覆盖问题转化为 最小区间覆盖问题,按照区间左端点从小到大排序,之后进行贪心。喷水装置(二)时间限制:3000 ms  |  内存限制:65535 KB难度:4描述有一块草坪,横向长w,纵向长为h,在它的橫向中心线上不同位置处装有n(n<=10000)个点状的喷水装置,每个喷水

2016-03-25 17:23:39 628

原创 NYOJ 题目6 喷水装置(一) 水贪心

半径1或者以下的喷水装置毫无用处,因为题目是要求在一个矩形的两条长为20米的边的中位线上装喷水器,而且要求全部覆盖,且宽为2米。按半径大小从大到小排序,之后进行贪心。喷水装置(一)时间限制:3000 ms  |  内存限制:65535 KB难度:3描述现有一块草坪,长为20米,宽为2米,要在横中心线上放置半径为Ri的喷水装置,每个

2016-03-25 16:55:08 474

原创 uvaLive 2387 - Gene Assembly 最大区间调度问题

题目:点我经典贪心模型,按照右端点从小到大排序。注意同一个位置只能放一个。#include#include#include#include#include#includeusing namespace std;typedef long long ll;const int INF =0x3f3f3f3f;const int maxn= 1000 ;in

2016-03-24 22:33:40 523

原创 抄书问题2 (复制书稿) 单调性优化dp + 序列划分模型

3163 抄书问题 2 时间限制: 2 s 空间限制: 256000 KB 题目等级 : 钻石 Diamond题解题目描述 Description现在要把M本有顺序的书分给K个人复制(抄写),每一个人的抄写速度都一样,一本书不允许给两个(或以上)的人抄写,分给

2016-03-24 18:02:34 1000

原创 poj 1717 Dominoes 背包

DominoesTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 6464 Accepted: 2131DescriptionA domino is a flat, thumbsized tile, the face of which is divide

2016-03-24 00:15:34 486

原创 ZOJ Problem Set - 2562 More Divisors 反素数

More DivisorsTime Limit: 2 Seconds      Memory Limit: 65536 KBEverybody knows that we use decimal notation, i.e. the base of our notation is 10. Historians say that it is so because men have

2016-03-23 20:16:13 347

原创 UVA - 11582 Colossal Fibonacci Numbers! 巨大的斐波拉契数 鸽笼原理+模运算

输入unsigned long long 型 a,b 和 不超过1000 的正整数n ,输出 f(a^b)%n,f()代表斐波那契数。f(0)=0, f(1)=1 。解:因为f(i)=f(i-1)+f(i-2), 所以如果有   f(x-1)==f(i-1)&&f(x)==f(i) 且x!=i ,那么势必会出现循环。n很小,在[1,n^2+2

2016-03-23 12:48:53 524

原创 UVA - 11093 Just Finish it up 难道我这是神解?

这个题1A,我的解法和 紫书,也就是网上大部分的解答完全不同,突然发现自己这个做法很简洁。我的做法,构造一个函数,现在要在x=1,2,3,...,n这n个位置上画个点。现在这个函数过点(0,0)现在从1到n扫描n个加油站,每到一站y[i]=y[i-1]+p[i]-q[i]如果y[n]否则,现在只需要找到最低点的序号,如

2016-03-22 20:21:48 553

原创 CODEVS 3162 抄书问题 (复制书稿)

做这个题,犯了致命错误,wa了几发。首先要dp,然后必须贪心输出结果,我这个错误以前犯过一次。输出结果的时候局部最优不一定是全局最优,因为输出的顺序是倒着来的,而且题目要求是让连续区间中的最大值最小,所以先应该记录这个全局最优值,然后对于局部的路径输出,只需要满足这题目还会有K==0&&M==0的数据。

2016-03-22 18:00:40 901

原创 CF 598C Nearest vectors (精度)

在acm题中从来没用过long double,这题本来快做对了,可惜用的是double,精度被卡死。C. Nearest vectorstime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutpu

2016-03-22 16:21:33 416

原创 CF 598 E. Chocolate Bar dp题的要害是什么呢?

E. Chocolate Bartime limit per test 2 secondsmemory limit per test 256 megabytesinput standard inputoutput standard outputYou have a rectangular chocolate bar c

2016-03-22 00:05:13 933

原创 uva 11520 - Fill the Square - D 填方块 贪心

贪心,从上到下,从左到右,能填A则填A,否则试B...#include#include#include#include#include#includeusing namespace std;typedef long long ll;const int INF =0x3f3f3f3f;const int maxm=100000 ;int n,m;char s[max

2016-03-21 13:33:44 296

原创 CF 349 C. Dominoes 贪心吧

C. Dominoestime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputDuring the break, we decided to relax and play

2016-03-21 13:29:38 319

原创 CF279C Ladder 简单DP

L[x]代表不递增序列,从x位置向左最远能延伸到的位置R[x]代表不递减序列,从x位置向右最远能延伸到的位置给出x,y只用判断R[x]是否>=L[y]即可。一看就感觉是水题。#include#include#include#include#include#includeusing namespace std;typedef long long

2016-03-21 13:06:46 971

原创 CF_1B_Spreadsheets 进制转换

B. Spreadsheetstime limit per test 10 secondsmemory limit per test 64 megabytesinput standard inputoutput standard outputIn the popular spreadsheets systems (fo

2016-03-21 12:45:05 380

原创 poj 2689 Prime Distance 筛法/二次筛法/区间素数

完全可以用二次筛法来做,虽然我只是一遍就筛出来,第一次,先找出[1,sqrt(INT_MAX+0.5)]间的素数。第二遍利用第一遍找出的素数找出[L,U]内的素数,映射到一个数组里面,。具体的处理方法有:开一个数组装下该区间内所有的素数,或者表示某个值是否为素数。#include#include#include#include#include#

2016-03-15 13:33:48 519

原创 CF 651A Joysticks 贪心/DP

给出DP解,因为每一分钟过完后,一个用电器的电量-2,一个用电器的电量+1,dp[x][y]=max(dp[x-2][y+1],dp[x+1][y-2]);所以不能直接用递推求解,用记忆化搜索是可以的。因为不存在环,也就是说总电量是在减小的。#include#include#include#include#include#includeusing nam

2016-03-15 10:09:14 548

原创 hdu 5001 Walk 概率DP

其实是很简单的概率DP,看样例的时候因为没读懂0.00000,根本就没有想。三维数组dp[i][step][x]代表:没有经过i点的概率,走了step步,现在在x点的概率。第一维可以省去。#include#include#include#include#include#include#includeusing namespace std;

2016-03-15 10:01:47 256

原创 zoj 2339 Hyperhuffman 赫夫曼编码

很典型的huffman编码,之前写的时候把树给构造出来了,可能会爆内存,注意一点,还是可以不爆。其实不用构造huffman树,给你n个元素,经过n-1次操作,会生成n-1个新元素。这样计算带权路径长度初始化ans=0;对于每一次新生成元素的权值,都加到ans里面即可,这样相当于 每个子结点都计算了它的高度(最顶层为第0层)次。

2016-03-14 15:23:58 366

原创 hdu 1950 Bridging signals 最长上升子序列

Bridging signalsTime Limit: 5000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 1392    Accepted Submission(s): 908Problem Description'Oh no, th

2016-03-14 15:06:41 461

原创 zoj 3622 Magic Number

Magic NumberTime Limit: 2 Seconds      Memory Limit: 32768 KBA positive number y is called magic number if for every positive integer x it satisfies that put y to the right of x, which will fo

2016-03-14 15:04:19 295

原创 poj 1061 青蛙的约会 拓展欧几里德 解二元一次不定方程

青蛙的约会Time Limit: 1000MS Memory Limit: 10000KTotal Submissions: 102372 Accepted: 19814Description两只青蛙在网上相识了,它们聊得很开心,于是觉得很有必要见一面。它们很高兴地发现它们住在同一条纬度线上,于是它们约定各自朝西跳,直

2016-03-13 10:44:51 361

原创 POJ 3126 Prime Path 筛法+最短路

网上的题解都是用BFS求最短路的,我这里用了dijkstra,感觉功能太强了点。Prime PathTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 15553 Accepted: 8768DescriptionThe min

2016-03-12 18:40:48 264

原创 POJ 3518 Prime Gap 筛法+二分 水题一个

Prime GapTime Limit: 5000MS Memory Limit: 65536KTotal Submissions: 9622 Accepted: 5530DescriptionThe sequence of n − 1 consecutive composite numbers (positive i

2016-03-12 17:18:04 799

原创 poj 2739 Sum of Consecutive Prime Numbers 水题 筛法

Sum of Consecutive Prime NumbersTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 22181 Accepted: 12162DescriptionSome positive integers can be represen

2016-03-12 16:49:22 354

原创 poj 1365 Prime Land 唯一分解定理

这个题,一大堆英文烦死了,但是貌似原数必须用long long存,我wa了半天,之前一直以为原数的范围时[3,32767],结果发现这可能是底数的范围。Prime LandTime Limit: 1000MS Memory Limit: 10000KTotal Submissions: 3516 Accepted: 159

2016-03-12 12:31:47 738

原创 hdu 1074 Doing Homework 简单状压/集合DP

Doing HomeworkTime Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 7121    Accepted Submission(s): 3141Problem DescriptionIgnatius ha

2016-03-11 20:34:54 365

原创 hdu 2571 命运 简单DP

详见注释,写了我犯的错误。命运Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 14526    Accepted Submission(s): 5113Problem Description穿过幽

2016-03-11 19:24:17 272

原创 hdu 1505 City Game 简单DP 最大子矩阵 迭代法

hdu 1506 加强版    题解:点我只不过在1506的基础上套了一重循环。City GameTime Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 6059    Accepted Submission(s):

2016-03-11 18:47:35 370

原创 hdu 1506 求最大子矩阵 简单DP 迭代法

L[i]表示区间[L[i],i  ]内的x均有a[x]>=a[i],且L[i]取最小值。R[i]表示区间[i, R[i] ]内的x均有a[x]>=a[i],且R[i]取最大值。就是枚举高度最低的矩形,形成的矩形高度为 该矩形高度,之前预处理 找到最左边界,和右边界。#include#include#include#include#

2016-03-11 17:57:09 443

原创 hdu 4283 You Are the One 区间DP 也算得上是比较好的解法

dp[le][ri]代表区间[le,ri]的最优解,区间DP其实是利用有关分治思想的一种解题思路(注意:因为dp的意义,dp[le][ri]表示的是在le之前栈为空,在[le,ri]全部上台后,栈也为空。)那么如果子问题划分的好,势必会使解答大大简化。在[le,ri]内找一点k,使之划分为两个区间:[le,k-1],[k,ri],对于[le,k-1]

2016-03-10 22:52:35 450

原创 ZOJ - 3469 Food Delivery 区间DP

因为人的路线是来回走的,所以 当前已送的区间为[x,y],那么再送一次餐,已到区间为[x-1,y]或者为[x,y+1]。区间DP。dp[le][ri][k]表示当前已送完[le,ri]区间,如果k==0,那么人正在第le点,如果k==1,那么人正在第ri点上。坑点:1.速度为1/v,所以不用double表示2.数据范围并没有明确给出,用long long。

2016-03-09 21:08:05 433

原创 POJ 1651 Multiplication Puzzle 区间DP

dp[le][ri]代表区间[le,ri]的最小花费,对于区间[le,ri],这样求dp[le][ri]:枚举最后一次选取的位置kdp[le][ri]=min{a[le]*a[k]*a[ri]+dp[le][k]+dp[k][ri]   };Multiplication PuzzleTime Limit: 1000MS Memory

2016-03-09 13:00:30 333

原创 uvaLive 4490 Help Bubu 帮助布布 等价转化+DP

等价转换:从有n本书的书堆里面抽取k本书,再插入书堆里面,计算书的杂乱度等价于向空的书架上按给出的顺序放上n本书,再从中抽取k本书,然后插入书堆里面,计算书的杂乱度等价于向空的书架上按给出的顺序放上n-k本书,然后再放上k本书,想放哪放哪,计算书的杂乱度。显然第一阶段放n-k本书,就是一个简单的背包+集合动态规划。对于每一本书,可以选也可以不选。

2016-03-09 11:06:19 680

原创 CF 149D Coloring Brackets 彩色括号 区间DP

一份比较简洁的解答详见注释#include#include#include#include#include#include#includeusing namespace std;typedef long long ll;const int INF =0x3f3f3f3f;const int maxn=700 ;char s[maxn+5];//用于保存字符串

2016-03-08 23:00:36 758

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除