- 博客(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 767
原创 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 982
原创 CodeForces 354A - Vasya and Robot (简单思维)
题意:有一个机器人 他有两只手,一只左手一只右手,他面前摆了一排东西,左手只能从最左边拿,右手只能从最右边拿,每个东西有一个重量w[i] , 左手拿起这样东西需要消耗w[i] * l 的能量, 右手拿起这样东西需要消耗w[i] * r 的能量,如果连续使用左手或者右手还需要多消耗 Q1或者Q2的能量,问拿走所有东西所需要消耗的最少能量是多少? 题解:最后的状态无非就是左
2015-06-21 10:46:43 940
原创 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 776
原创 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 586
原创 codeforces Round#158 Div.2 C
题意:玩一个游戏,有n个箱子, 每个箱子里面有value[i] 个小球, 选择其中一个箱子开始游戏,将这个箱子里面小球全部拿出,该箱子编号为i , 然后依次朝着i + 1 , i + 2 ....... 箱子里放球,一次放一个 , 直到把手上的球全部放完, 最后一个球的后面一个球为第一个球。现在给你最终游戏结束的状态,并且给你游戏结束的时候放最后一个球的位置,让你推测出游戏刚刚
2015-06-18 18:14:39 458
原创 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 587
原创 Codeforces 551C - GukiZ hates Boxes(二分加贪心)
题意:就是n个学生帮助教授搬箱子, 箱子分成m 堆, 每个学生每秒可以选择的两个操作操作1,为从i堆迈向第i+1堆, 操作2,从i-1堆箱子中帮忙抱走一个箱子问抱走所有箱子的最少时间为多少, 每个学生每秒可以同时行动题解:二分时间 然后再当前时间下,一个一个派出所有的学生,使其走到他能走的最远距离 代码:#includeint flag, value[1
2015-06-14 20:13:26 894
原创 codeforces #549G Happy Line
题意: 给你一个序列 ,让后可以进行改动 改动为 前者减一后者加一, 然后前后交换,问是否可以改变为非递减序列题解: 改动规则很简单, 要后移 则权值加一,前进则权值减一,可以发现无论如何移动 每个点的权值加上下标都是不变的。所以进行一下处理,排序,如果有权值加上下标相等的,则无法改变为非递减序列代码:、#include#include#include#i
2015-06-12 18:23:45 737
原创 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 699
原创 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 545
原创 Codeforces 337D Book of Evil (树的直径)
这道题 本来看着没有太多思路,罪过罪过,果断瞻仰神牛博客题意:就是现在对于一个n个点的树 (1 题解:找到恶魔子树的直径,然后再枚举所有点到子树直径的距离 发现两个距离都小于d 则Ans ++; 原因:如果一个树的节点到其子树的直径端点的最大值为X 则该点到该子树的所有节点距离大于d 代码:#include#include
2015-06-04 21:38:20 514
原创 ZOJ 38727(贪心)
这道题真心坑,越想越远 想的飞起来了, 最后纠结起后缀表达式的定义来了.题意:就是给你一个串 , 让你用最少修改次数来实它变成一个合法的后缀表达式, 修改方式有两种, 一种是直接添加数字或者*,或者是交换两个字符的位置。题解:首先保证星号所需要的数字比当前串的数字大,如果不足,则添加需要数字到字符串首 , 然后从头朝尾扫, 如果当前状态合法则不需要管,当前状态不合法的时候将
2015-06-04 15:46:08 609
原创 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 465
原创 CodeForces 128D Numbers(贪心?)
题意: 就是给你n个正整数数(3 表示也不知道解法的正确性如何 , YY了一下题解:就是拿出n 个数里面最大的, 然后往小了选, 如果接下来需要的小1的没有了,就跳到比这个数大1 的 , 跑到末尾之后, 看看最后一个是否和第一个相差1 , 感觉这么做能过。。。代码:#include#include#include#includeusing na
2015-06-01 21:01:25 597
原创 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 474
原创 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 524
原创 编程之美第三题 序列变换tiyi
题意: 给你一个序列 , 让你改变序列中的所有值, 最后保证序列变成一个绝对递增的序列 , 也就是每个a[i+1] 〉a[i], 然后有一个消耗为 max | a[i] - b[i]|, 问消耗最小为多少。 题解: 很显然 最大值最小问题, 明显二分, 然后再保证第一个最小的同时 , 后面的和第一个尽量靠近, 然后就A了 , 这次编程之美比赛题目确实好
2015-05-30 21:46:30 461
原创 编程之美第二题 找连续数
题意: 就是给你一个乱序序列, 现在要找某个特定序列的个数, 某特定序列的要求为 该序列长度为k 且序列中为连续的序列 例如 13245 就为1-5的连续序列题解: 没啥解法 , 两重for 暴力,就是这样 代码: #include#include#include#include#includeusing namespace std;map
2015-05-30 21:42:01 420
原创 编程之美第一题 超级赛亚ACMer
题意太麻烦 , 就不说了, 编美第一题, 也算是签到题,和队友一起果断混了5个水题, 也不知道会不会有小熊公仔,废话不多说,细说比赛我出的三个水题。题解:这个人每次战斗力会跨越, YY了一下,每次跨越的落脚点为该跨越距离中最后一个点, 然后就A了 , YY 大法好。代码:#include#include#includeusing na
2015-05-30 21:36:27 513
原创 ZOJ 3872 (思维)
题意: 给你一个串, 串和为所有不相同数字之和, 然后让你求该串所有连续子串总和为多少。题解:从前往后扫一次 , 记录当前数字出现次数, 计算和的时候减去该数字乘出现次数代码:#include#include#includeusing namespace std;map mark;int main(){ int T, a, n; scan
2015-05-27 13:27:12 706
原创 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 520
原创 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 780
原创 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 572
原创 Codeforces 526C - Om Nom and Candies(贪心,暴力)
题意:你最多可以吃C千克的糖, 有两种糖,每种糖有两个参数,一个为重 w ,一个为欢乐度 h , 如何选择才能拥有最高的欢乐度, 两种糖数量不限。题解:看了半天题解才理解如何做,分为两种枚举政策涵盖了所有情况, 时间复杂度为sqrt(c),神奇的暴力1。如果两种糖中重量最大的超过sqrt(c), 那么该糖最多也只能选择不超过sqrt(c)个, 直接枚举该糖个数,记录最大欢
2015-05-21 09:29:30 994
原创 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 728
原创 HDU 5229 博弈思维
题意:总共有N 个串, 从中拿出2个串来,两人轮流进行两种操作操作1: 将两个串中随机拿出一个非空串,删掉其末尾字母操作2: 如果两个串相同且非空才能执行该操作,清空两个串;谁面临无法执行操作时 , 判为输, 两人足够机灵题解:明显 如果两个串相同则必定先生赢,两个人为了避免对手拿到必胜状态一定会尽量使两个串差距大。策略为拿两个串中最小的串,既能使对家面临两个串都为空
2015-05-19 22:28:16 451
原创 HDU 5228 水暴力
感觉好久没写博客了 , 写个水题开心一下。题意: 用最少的步骤将手牌换成同花顺 , 直接枚举了,反正牌不多,全部的同花顺也就大概50种 然后枚举看看每个同花个当前手牌差多少 ,找个最小的,数据小,直接过了,代码:#include#include#include#include#includeusing namespace std;map mymap;
2015-05-19 22:20:48 600
原创 POJ 1324 贪吃蛇状态压缩BFS
题意 : 给出一个n *m 的地图,地图上有一些石头,蛇不能过去,给你蛇头和蛇身的各个坐标,然后给你石头的坐标 ,问你需要多少步可以将 蛇头移到 1 1 这个点。中间蛇头不可以撞蛇身 , 游戏规则和普通贪吃蛇一样。题解 : 裸的广搜,如何标记蛇的状态为关键,蛇头和蛇身之间拥有相对位置关系,mark标记数组 第一二维记录蛇头的坐标,第三维记录蛇关节的相对位置关系,由于蛇长最大为8,
2015-03-20 20:04:15 564
原创 HDU 4101 有意思的广搜
题意:在一个n*n的矩阵内,两个人想要找到一个 “ 宝藏 “,用-1表示。其中有空地,每回合可任意穿梭,用0表示,有怪物,无法直接穿过,需要杀死,每回合砍1 HP,等于0时死亡,由两人从最外围开始,每人一回合行动,问谁能获得 ” 宝藏 “ 。题解: 看似博弈 ,同样可以从必胜状态考虑,当宝藏周围只剩下最后一圈血量为1的怪物时, 谁先打死那个怪物,谁就输了。 两
2015-03-15 14:18:45 627
原创 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 459
原创 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 492
原创 HDU 2158 模拟题
题目:给定一个序列,有N个整数,数值范围为[0,N)。有M个询问,每次询问给定Q个整数,可能出现重复值。要求找出一个最短区间,该区间要包含这Q个整数数值。题解:先便利一个整体的 L 和 R, 然后枚举L, 同时维护R,使得区间满足题目要求,更新最小区间, 直道不满足要求为止。代码:#include#include#define N 100005
2014-12-03 20:56:06 1291
原创 hdu 3987 求最小割条数最小
题意: 一个人要从起点 0 到达 n-1 n个点 m条路 ,我们求最少破坏路的条数使无法 从起点到达终点。题意很明显 ,求最小割条数最少,由于最小割流量虽然固定,但是其条数却不固定,可以破坏3条路,也可以破坏4条路,他们总流量相同才会出现这种情况。题解:由于上述的情况,他们总流量相同但是条数不同,现在我们需要改变边的容量使得条数少边才是最小割,条数多的将不会是最小割。官
2014-12-01 21:50:55 807
原创 HDU 4888 神奇最大流行进列出构造矩阵
题意: 给你一个N ,M 构造一个N*M的矩阵,矩阵中每个元素为0-K;给你每行的和与每列的和。如果解法唯一 ,输出解法如果解法不唯一,输出一句话,如果没有解法,输出一句话。题解: 经典建图 s ---> 每个行节点,流量为行和 每个列节点----〉t,流量为列和 每行每列单独连接,流量
2014-11-27 21:26:57 499
原创 POJ 3204 最大流
题意:问加哪些边容量增大能够增加整体流量。很显然,增加单个边容量改变全局容量,一遍最大流之后,这些边只有可能出现在满流的边内,而且是一条路中唯一的一条满流边。题解: 大众解法,一遍最大流之后,整个图跑残了,记录那些满流的边,从起点开始深搜,只走非满流边,从终点开始搜,只走非满流边,如果某条满流边起始点被起点标记,且终止点被终点标记,那么这条满流边存在于有且仅有他自己的从起点到终点的非满流路
2014-11-26 20:58:40 605
原创 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 518
原创 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 613
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人