自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(52)
  • 收藏
  • 关注

原创 HDU 5273(暴力前缀和)

Dylans loves sequence  Accepts: 250  Submissions: 806 Time Limit: 2000/1000 MS (Java/Others)  Memory Limit: 131072/131072 K (Java/Others)问题描述Dylans得到了N个数a[1]...a[N]。有Q个问题,每个

2015-06-21 16:26:08 763

原创 CodeForces 288C - Polo the Penguin and XOR operation(思维)

题意:就是让你构造一个序列,使得序列异或和最大,序列为n 的全排列 ,序列和计算方式为   SUM  =   a[1] ^ 0 + a[2] ^ 1 + a[3] ^ 2 + .......a[n] ^ n 构造出一个序列使得和最大题解:策略为使得每次异或出来的结果的1尽可能多,而优先从最大的n  开始考虑,因为n  最有可能出更大的数字代码:#include#inc

2015-06-21 16:15:02 975

原创 CodeForces 354A - Vasya and Robot (简单思维)

题意:有一个机器人   他有两只手,一只左手一只右手,他面前摆了一排东西,左手只能从最左边拿,右手只能从最右边拿,每个东西有一个重量w[i]  ,   左手拿起这样东西需要消耗w[i] * l  的能量, 右手拿起这样东西需要消耗w[i] * r 的能量,如果连续使用左手或者右手还需要多消耗 Q1或者Q2的能量,问拿走所有东西所需要消耗的最少能量是多少? 题解:最后的状态无非就是左

2015-06-21 10:46:43 935

原创 CodeForces 360A - Levko and Array Recovery (思维)

题意:给定一个序列,然后对其进行两种操作1   L R W   代表从 a[L ] 到a[R] 全部加上W2   L R W  代表从  a[L] 到 a[R] 中最大值为 W问是否存在一个序灭满足上序操作  , 操作数量小于5000题解:从尾往前跑  ,   维护序列每个值可存在的最大权值, 然后再从头往后跑,查询该序列是否满足要求代码:#include#de

2015-06-18 21:02:51 772

原创 codeforces Round#158 Div.2 D

题意:给出n个点的颜色,和与该点有关边的总权值,让你构造出一棵树,颜色相同的点不能相连,输出所有边和其权值题解:http://m.blog.csdn.net/blog/haha593572013/8450520代码:http://hzwer.com/7257.html

2015-06-18 18:20:37 583

原创 codeforces Round#158 Div.2 C

题意:玩一个游戏,有n个箱子,  每个箱子里面有value[i] 个小球, 选择其中一个箱子开始游戏,将这个箱子里面小球全部拿出,该箱子编号为i ,  然后依次朝着i + 1 ,  i + 2 ....... 箱子里放球,一次放一个    , 直到把手上的球全部放完, 最后一个球的后面一个球为第一个球。现在给你最终游戏结束的状态,并且给你游戏结束的时候放最后一个球的位置,让你推测出游戏刚刚

2015-06-18 18:14:39 455

原创 codeforces Round#158 Div.2 A

题意:给出一个数字  ,  往其末尾加上n个数字,每次添加的时候保证其 %  k   == 0    输出最终数字题解:只需要保证第一个数字合法,  然后往后面加上n-1个0代码 : #include#includeint main(){ int a, b, n; char s1[200010]; while(scanf("%d %d %d

2015-06-18 18:13:40 586

原创 Codeforces 551C - GukiZ hates Boxes(二分加贪心)

题意:就是n个学生帮助教授搬箱子, 箱子分成m 堆, 每个学生每秒可以选择的两个操作操作1,为从i堆迈向第i+1堆,   操作2,从i-1堆箱子中帮忙抱走一个箱子问抱走所有箱子的最少时间为多少, 每个学生每秒可以同时行动题解:二分时间   然后再当前时间下,一个一个派出所有的学生,使其走到他能走的最远距离 代码:#includeint flag, value[1

2015-06-14 20:13:26 891

原创 codeforces #549G Happy Line

题意: 给你一个序列  ,让后可以进行改动 改动为  前者减一后者加一, 然后前后交换,问是否可以改变为非递减序列题解: 改动规则很简单,  要后移 则权值加一,前进则权值减一,可以发现无论如何移动 每个点的权值加上下标都是不变的。所以进行一下处理,排序,如果有权值加上下标相等的,则无法改变为非递减序列代码:、#include#include#include#i

2015-06-12 18:23:45 733

原创 HDU 5258(水暴力)

题意 :中文题 不描述了    暴力四条边。 代码:#includestruct Node{ int x1, y1, x2, y2; }cunh[26], cuns[25];int Max(int a, int b){ if(a > b) return a; return b;} int Min(int a, int b){

2015-06-12 18:19:18 695

原创 hdu 5265(水)

题意:给你一个序列,然后找到两个数 A B   使得  A+B  % MOD最大代码:#include#include#includeusing namespace std;__int64 value[100005];int main(){ int n, p; while(scanf("%d %d", &n, &p) != EOF) {

2015-06-12 18:17:53 541

原创 Codeforces 337D Book of Evil (树的直径)

这道题 本来看着没有太多思路,罪过罪过,果断瞻仰神牛博客题意:就是现在对于一个n个点的树 (1 题解:找到恶魔子树的直径,然后再枚举所有点到子树直径的距离   发现两个距离都小于d   则Ans ++; 原因:如果一个树的节点到其子树的直径端点的最大值为X   则该点到该子树的所有节点距离大于d 代码:#include#include

2015-06-04 21:38:20 513

原创 ZOJ 38727(贪心)

这道题真心坑,越想越远  想的飞起来了, 最后纠结起后缀表达式的定义来了.题意:就是给你一个串 ,  让你用最少修改次数来实它变成一个合法的后缀表达式,  修改方式有两种, 一种是直接添加数字或者*,或者是交换两个字符的位置。题解:首先保证星号所需要的数字比当前串的数字大,如果不足,则添加需要数字到字符串首 , 然后从头朝尾扫,  如果当前状态合法则不需要管,当前状态不合法的时候将

2015-06-04 15:46:08 605

原创 Codeforces D. Giving Awards 412(DFS)

题意: 给出n  , m   然后给出m组关系,  表示前者不能出现在后者的前方,  即 a  b  不行 但是  b a 是可以的然后构建出一个序列  满足所有关系。 题解:由题可知  ,  需要满足关系,  直接构图,  然后DFS  ,  然后反向输出答案  然后没了。代码:#include#include#include#includeusing n

2015-06-01 21:05:30 463

原创 CodeForces 128D Numbers(贪心?)

题意: 就是给你n个正整数数(3 表示也不知道解法的正确性如何 ,  YY了一下题解:就是拿出n 个数里面最大的,  然后往小了选, 如果接下来需要的小1的没有了,就跳到比这个数大1 的 ,  跑到末尾之后,  看看最后一个是否和第一个相差1 ,  感觉这么做能过。。。代码:#include#include#include#includeusing na

2015-06-01 21:01:25 594

原创 Codeforces 336C Vasily the Bear and Sequence (暴力)

题意: 就是现在给出一个严格单调递增的数列a, 1 现在要求从中选出一些数作为b1, b2, b3... bm (m为选出的数的个数)使得 b1 & b2 & b3 ... & bm的二进制末尾0的数量最大, 在满足这个值最大的同时如果有多个答案, 输出使得m尽量大的解, 如果依旧有多组解输出任意一组。题解:二进制数最多30位,直接枚举最高不为0 位,然后又是&运算   有0为

2015-05-31 21:28:27 472

原创 Codeforces Round #297 (Div. 2)C. Ilya and Sticks

题意:给你n 个木头的长度   ,  问你组成矩形的最大总面积为多少,  且木头长度L   可以当作L-1 来使用。题解:很显然   组成矩形要保证总面积最大   只有大的和大的边组成才能保证面积最大,并且如果当前大的为偶数条那么不需要变成-1  否则变成减1   从头到尾扫一遍  没了代码:#include#include#includeusing namespace st

2015-05-31 08:25:16 522

原创 编程之美第三题 序列变换tiyi

题意:   给你一个序列  ,  让你改变序列中的所有值,  最后保证序列变成一个绝对递增的序列   ,  也就是每个a[i+1] 〉a[i],   然后有一个消耗为 max | a[i] - b[i]|, 问消耗最小为多少。 题解:  很显然  最大值最小问题,  明显二分,  然后再保证第一个最小的同时  ,  后面的和第一个尽量靠近,  然后就A了    ,  这次编程之美比赛题目确实好

2015-05-30 21:46:30 457

原创 编程之美第二题 找连续数

题意:   就是给你一个乱序序列,  现在要找某个特定序列的个数,   某特定序列的要求为  该序列长度为k   且序列中为连续的序列   例如 13245  就为1-5的连续序列题解: 没啥解法   ,  两重for 暴力,就是这样 代码:  #include#include#include#include#includeusing namespace std;map

2015-05-30 21:42:01 418

原创 编程之美第一题 超级赛亚ACMer

题意太麻烦 , 就不说了, 编美第一题,  也算是签到题,和队友一起果断混了5个水题, 也不知道会不会有小熊公仔,废话不多说,细说比赛我出的三个水题。题解:这个人每次战斗力会跨越,  YY了一下,每次跨越的落脚点为该跨越距离中最后一个点, 然后就A了 ,  YY 大法好。代码:#include#include#includeusing na

2015-05-30 21:36:27 509

原创 ZOJ 3872 (思维)

题意: 给你一个串,  串和为所有不相同数字之和,  然后让你求该串所有连续子串总和为多少。题解:从前往后扫一次   ,  记录当前数字出现次数,  计算和的时候减去该数字乘出现次数代码:#include#include#includeusing namespace std;map mark;int main(){ int T, a, n; scan

2015-05-27 13:27:12 703

原创 Codeforces Round #275 (Div. 1)A. Diverse Permutation (水)

题意:从1-n的数,让你选择一些数来构造,要求每个相邻的数之间的绝对值之差有k种题解:先放好一个1   然后往后面插数字   先满足绝对值不同的  然后全插绝对值为1的, 代码:#include#includeint main(){   int n, k, a[100005], mark[100005];   while(scanf("%d %d", &

2015-05-27 13:25:44 517

原创 Codeforces Round #298 (Div. 2) A. Exam(水)

题意:N 个学生 编了号,  然后第i个学生不能和第i+1和第i-1坐在一起,问合法的情况下最多坐多少个人,如何做题解: 水题YY了一下,打表处理前三种    后面的情况就是在第三种情况下往前后插数字   奇数在后  偶数在前,然后没了代码:#include#includeint main(){   int n, mymap[5005];   int m

2015-05-27 13:21:39 539

原创 Codeforces 500B - New Year Permutation(最短路)

题意:给你一个序列    ,   给你一个mark 矩阵 , 如果mark[i][j] = 1,  则代表序列i    j  可以交换,需要求出交换之后字典序最小的序列题解:floyd 处理一遍,然后靠前的优先选择最小的数  ,  然后没了代码:#include#include#define N_node 305int n, dis[N_node][N_node], va

2015-05-24 09:34:13 779

原创 ZOJ 3870 数学思维

题意:给你n 个数 ,让你找出其中有多少组数字   a 异或b   大于max(a, b)题解:首先了解异或运算的方式    相同为0  不同为1    可以知道如果要增大肯定是要不同的位多于相同的位,其次需要知道     2的n次方等于2的n-1次访加到2的1次访再加1,即最高位影响大于低位之和,也就是说只有某个数字它和其他数字最大位不相同,则异或必然大于max(a,

2015-05-22 19:27:01 569

原创 Codeforces 526C - Om Nom and Candies(贪心,暴力)

题意:你最多可以吃C千克的糖,   有两种糖,每种糖有两个参数,一个为重 w  ,一个为欢乐度 h , 如何选择才能拥有最高的欢乐度,  两种糖数量不限。题解:看了半天题解才理解如何做,分为两种枚举政策涵盖了所有情况, 时间复杂度为sqrt(c),神奇的暴力1。如果两种糖中重量最大的超过sqrt(c),  那么该糖最多也只能选择不超过sqrt(c)个,   直接枚举该糖个数,记录最大欢

2015-05-21 09:29:30 987

原创 Codeforces 534D - Handshakes(构造,暴力)

题意:总共有N个人进入教室,   每次进入的时候会和教室里面原有的人握手,并且记录握手的次数,当教室里面有大于等于三个人的时候,任意三个人可以组队去比赛(后面近来的人将无法看到他们), 现在给出人数N    给出乱序的人的握手次数,问是否可以组成一个合法的序列 题解:一个人一个人往教室里走,  每次看看当前握手次数的询问是否还有,  如果还有 直接用当前握手次数否则将退回当前次数减3的次数

2015-05-20 22:16:30 672

原创 Codeforces 540B - School Marks (贪心)

第一次在CF上水题,  果断wa了好几发,   纪念一下,一发水题。题意:有N门成绩,   已经告知你K门, 在保证N门总和小于X且中位数大于Y的情况,  让你求出剩下N-K门,题解:明显 要保证和越小越好,  插入的数字只有1和Y,在插的时候保证中位数合法。记录小于Y的值,然后用1和Y去补缺失的。简单题, 有一点小细节,wa了好几发代码:#include#include

2015-05-20 12:27:46 725

原创 HDU 5229 博弈思维

题意:总共有N 个串, 从中拿出2个串来,两人轮流进行两种操作操作1:   将两个串中随机拿出一个非空串,删掉其末尾字母操作2:   如果两个串相同且非空才能执行该操作,清空两个串;谁面临无法执行操作时 ,  判为输,  两人足够机灵题解:明显  如果两个串相同则必定先生赢,两个人为了避免对手拿到必胜状态一定会尽量使两个串差距大。策略为拿两个串中最小的串,既能使对家面临两个串都为空

2015-05-19 22:28:16 450

原创 HDU 5228 水暴力

感觉好久没写博客了 , 写个水题开心一下。题意: 用最少的步骤将手牌换成同花顺 ,   直接枚举了,反正牌不多,全部的同花顺也就大概50种  然后枚举看看每个同花个当前手牌差多少  ,找个最小的,数据小,直接过了,代码:#include#include#include#include#includeusing namespace std;map mymap;

2015-05-19 22:20:48 599

原创 POJ 1324 贪吃蛇状态压缩BFS

题意  : 给出一个n *m  的地图,地图上有一些石头,蛇不能过去,给你蛇头和蛇身的各个坐标,然后给你石头的坐标 ,问你需要多少步可以将 蛇头移到 1 1 这个点。中间蛇头不可以撞蛇身 ,   游戏规则和普通贪吃蛇一样。题解 :  裸的广搜,如何标记蛇的状态为关键,蛇头和蛇身之间拥有相对位置关系,mark标记数组   第一二维记录蛇头的坐标,第三维记录蛇关节的相对位置关系,由于蛇长最大为8,

2015-03-20 20:04:15 558

原创 HDU 4101 有意思的广搜

题意:在一个n*n的矩阵内,两个人想要找到一个 “ 宝藏 “,用-1表示。其中有空地,每回合可任意穿梭,用0表示,有怪物,无法直接穿过,需要杀死,每回合砍1 HP,等于0时死亡,由两人从最外围开始,每人一回合行动,问谁能获得 ”  宝藏  “ 。题解: 看似博弈 ,同样可以从必胜状态考虑,当宝藏周围只剩下最后一圈血量为1的怪物时,  谁先打死那个怪物,谁就输了。             两

2015-03-15 14:18:45 625

原创 HDU 4768 二分的运用

题意:      n个社团给同学发传单,同学一共有1--2^31这么多,每个社团有三个数A ,B ,C ,只有满足 A ,A + C ,A + C + C ...A + KC 思路:     "题目保证给的测试数据要么没有奇数的,要么只有一个是奇数个传单." ,这句非常关键,我们二分枚举1--2^31,对于mid,算出0--mid一共发出去tmp张传单,如果tmp是偶数

2014-12-07 17:44:13 457

原创 HDU 5020 容器标记斜率

题意:给你n个点,让你求出三点共线的最大情况,   点数为1000个题解:很显然 ,点数1000,普通枚举O(n3),肯定过不了了。方法为map记录每个点和其他点连线的斜率,如果斜率出现次数大于2 ,Num += C(N,2);代码:#include#include#includeusing namespace std;mapdouble , int> mark;in

2014-12-04 23:13:33 491

原创 HDU 2158 模拟题

题目:给定一个序列,有N个整数,数值范围为[0,N)。有M个询问,每次询问给定Q个整数,可能出现重复值。要求找出一个最短区间,该区间要包含这Q个整数数值。题解:先便利一个整体的   L 和 R,   然后枚举L,  同时维护R,使得区间满足题目要求,更新最小区间, 直道不满足要求为止。代码:#include#include#define N 100005

2014-12-03 20:56:06 1280

原创 hdu 3987 求最小割条数最小

题意:    一个人要从起点  0  到达 n-1   n个点  m条路  ,我们求最少破坏路的条数使无法 从起点到达终点。题意很明显  ,求最小割条数最少,由于最小割流量虽然固定,但是其条数却不固定,可以破坏3条路,也可以破坏4条路,他们总流量相同才会出现这种情况。题解:由于上述的情况,他们总流量相同但是条数不同,现在我们需要改变边的容量使得条数少边才是最小割,条数多的将不会是最小割。官

2014-12-01 21:50:55 804

原创 HDU 4888 神奇最大流行进列出构造矩阵

题意:  给你一个N ,M   构造一个N*M的矩阵,矩阵中每个元素为0-K;给你每行的和与每列的和。如果解法唯一 ,输出解法如果解法不唯一,输出一句话,如果没有解法,输出一句话。题解:   经典建图             s ---> 每个行节点,流量为行和             每个列节点----〉t,流量为列和            每行每列单独连接,流量

2014-11-27 21:26:57 498

原创 POJ 3204 最大流

题意:问加哪些边容量增大能够增加整体流量。很显然,增加单个边容量改变全局容量,一遍最大流之后,这些边只有可能出现在满流的边内,而且是一条路中唯一的一条满流边。题解: 大众解法,一遍最大流之后,整个图跑残了,记录那些满流的边,从起点开始深搜,只走非满流边,从终点开始搜,只走非满流边,如果某条满流边起始点被起点标记,且终止点被终点标记,那么这条满流边存在于有且仅有他自己的从起点到终点的非满流路

2014-11-26 20:58:40 604

原创 HUD 3706 单调队列简单题

Problem DescriptionGive you three integers n, A and B. Then we define Si = Ai mod B and Ti = Min{ Sk | i-A = 1}Your task is to calculate the product of Ti (1     不描述题意了,三行英文挺明了的,今天刚学单调队列

2014-11-24 21:30:26 517

原创 HDU 5108 最大素数因子

Alexandra and Prime NumbersTime Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 706    Accepted Submission(s): 247Problem Description

2014-11-23 23:16:11 610

空空如也

空空如也

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

TA关注的人

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