自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

天与云与山与水

行己有耻,博学于文

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

原创 _STL使用技巧_(不定时更新)

1 关于取整的函数 坐标 math 用法: ceil(x)返回不小于x的最小整数值(然后转换为double型)。 floor(x)返回不大于x的最大整数值。 round(x)返回x的四舍五入整数值。 给个例子test.c:[cpp] view plain copy#include <stdio.h> #include <math.h> i...

2017-07-31 16:51:35 381

原创 金明的预算方案-DP

https://vjudge.net/problem/HRBUST-1377 本题由三种思路,但是第三种和第一种感觉差不多。 1 可以发现一个物品最多五种状态。于是用5种状态进行01背包。 要注意 状态转移的过程。 2 树形dp,其实也是01背包的层次过程。。 3 分组背包,写了一个没对。。也是制造4个背包,每四个分成一组,每组只能取一个。#include <iostream>#incl

2017-07-07 17:09:46 408

原创 HDU5131-暴力&读题-Song Jiang's rank list

http://acm.hdu.edu.cn/showproblem.php?pid=5131 给定m个梁山好汉的名字,和他们杀人的数目 按杀人顺序降序,如果杀人数相同,名字字典序小的在前面, 输出两个顺序,主顺序和次顺序 主顺序为杀人排名,次顺序为相同杀人数组 中在他前面的人数+1 如果为相同杀人组的第一个,就只输出主顺序。。 尴尬,理解错题意,当不为第一个时,我输出的是他前面不小于 他

2017-07-31 16:17:43 242

原创 好题-HDU5135-壮压|贪心-Little Zu Chongzhi's Triangles

http://acm.hdu.edu.cn/showproblem.php?pid=5135 给定m个木棍,把这些木棍组成三角形。可以不用完,问你最多摆成的三角形面积和最大。 我开始的思路是 暴力枚举所有状态,然后在判断是否有交集。。 因为要考虑要组成多少个,所以还要三个if。。 全部搞定之后,在用压位的思想来判断,但是后来觉得压位判断有点麻烦,如果一个三角形占了1 3 5,还要考虑他和一个

2017-07-31 16:11:10 299 2

原创 好题-Round #426 (Div. 2)C-二分&&思维||质因数分解-The Meaningless Game

http://codeforces.com/contest/834/problem/C 小明和 小华 在玩游戏。。开始值一样,然后指定一个值,他俩开始瞎猜这个值,谁先喊赢了谁就赢(完全随机),赢得人分数 乘以k^2,输的人分数乘以 k, 给你两个值,为是否可能是比赛的分数。 发现规律之后,二分或者直接求都是极好的 还有大佬用质因数分解,类似模拟这个过程。但是过程不太懂,仍在学习中 1 讲解

2017-07-31 13:43:45 241

原创 51nod1116-取模&大数-K进制下的大数

https://www.51nod.com/onlineJudge/submitDetail.html#!judgeId=300218 开始是模拟计算,后来感觉这么长的位置可能会爆。 后来想了一个方法,每次先求位权。一位一位的算。 比如4872%21 先算 4*1000 mod21为 18 18+800 mod 21 依次。但是又wa了好多组。。。这样应该也会爆。 其实已经很像了。

2017-07-31 09:56:46 399

原创 HDU5137-最短路最大化-How Many Maos Does the Guanxi Worth

https://vjudge.net/contest/174794#problem/K 一个图 m个点 n个边, 可以删除一个点(与之连接的边也删除),令其之后的最短路最大,问你最短路长度是多少。 如果删除一个就不能连通了那就输出Inf(第一个字母大写的,,因为这个wa了6次。。) 开始的想法是 枚举删除的点,求最短路,因为想另其最大,我们就求取最大的就行,如果最大都是 dis的初始值,则说

2017-07-30 21:51:22 342

原创 UVA11997-多路归并排序-K Smallest Sums

做多校的时候,大佬说这是一个经典问题。。 k个集合 每个取一个值,求极值。(可以重复取) 不重复的话直接排序 就行qwq, https://vjudge.net/problem/UVA-11997 看的题解。 http://blog.csdn.net/libin56842/article/details/46446157 我认为在分配的时候,存在一个贪心的思路。 如果求k个最小的,那么

2017-07-29 15:14:21 252

原创 HRBEU-贪心,区间-A公司的烦恼

http://acm.hrbeu.edu.cn/index.php?act=problem&id=1004&cid=17 在实验室捡到一本书,上面有这道题就看了看。。 题意不太完整,要求每次汇报时,五个月和均为亏。 手画了五种情况。没有考虑i为0的情况,wa 了两次。#include <bits/stdc++.h>using namespace std;const int MAXN=250

2017-07-28 22:03:04 485

原创 hdu6035-树形dp-2017多校(2)&难-Colorful Tree

http://acm.hdu.edu.cn/showproblem.php?pid=6035 参考的大佬的博客。 附赠链接 http://blog.csdn.net/Bahuia/article/details/76141574 我觉得这道题,真是难。。 首先,反着求比较容易,我们可以先算出全集,然后减去每条路径中不出现的颜色数。 而不出现某种颜色,可以用类似虚数的思想,构建好多个只有相

2017-07-28 18:43:05 246

原创 hdu6038-思维-2017多校(2)-Function

http://acm.hdu.edu.cn/showproblem.php?pid=6038 给定两个数组,设定一个函数f 满足 f[i]=b[f[a[i]]] ,求这种函数的个数。。 假设 a[] = {2, 0, 1} 则 f(0) = b[f(2)] f(1) = b[f(0)] f(2) = b[f(1)] 即 f(0)

2017-07-28 12:25:01 220

原创 hdu6045-思维-Is Derek lying?

http://acm.hdu.edu.cn/showproblem.php?pid=6045 给定n个问题。a有一组答案,b有一组答案,答对一道是一分,已知道a的分数,问你所给的b的分数是否说谎。 比赛的时候范围大致算出来呢,但是有一个细节,但是计算有失误。 可以判断b的分数存在一个范围。 1 当b的分数最小的时候,a的题目尽可能的答对回答不同的的题。 这时 范围 为 max(0,n-(

2017-07-28 10:45:24 217

原创 hdu6047-贪心&思维-2017多校(2)-Maximum Sequence

http://acm.hdu.edu.cn/showproblem.php?pid=6047 1 给定你一个n长的数组a,和n长的数组b。 问你构造a数组的 下一个n长, 有一个限制。每一个 a[i]需要由 一个b[i]限制。 在 b[i]- i这个长度下,我们要求 a[i]为这个范围内 a[i]-i的最大值。 问你这个数组 n+1- 2*n 的所有 a[i]的和。 1 贪心啊,每次

2017-07-27 19:42:49 395

原创 hdu6034-贪心&进制-2017多校1-Balala Power!

http://acm.hdu.edu.cn/showproblem.php?pid=6034 给定一系列字符串, 给每个字母对应的 0-25映射,要求每个串映射的26进制数最大。每个长度大于1的串开头的字母不能映射为0!思路:先计算每个字母对应的 权值和(比如a出现在第一个串个数位1次,第二个串十数位1次,权值和就是1+26=27) 但是要注意的一点,直接根据权值和从大到小赋值 25-0,是不

2017-07-27 18:23:27 266

原创 nefuoj1109-状态压缩dp-游戏争霸赛

http://acm.nefu.edu.cn/JudgeOnline/problemShow.php?problem_id=1109 给定m个人比赛,输了淘汰,赢了继续比,最后有一个人是冠军,给定一个数组,a[i][j]为 i战胜j的欢乐度,问你如何欢乐度最多。#include <iostream>#include <cstdio>#include <cstring>using namesp

2017-07-26 17:46:52 272

原创 HDU6033-2017多校第一场-Add More Zero

输入一个k 求pow(2,k)-1的长度-1 是多少。 一个数的长度为 log(n) +1 取int。 然后对2^k进行以下处理,即可以得到。 k*log10(2) 。#include <iostream>#include <cstdio>#include <cmath>using namespace std;int main(){ int n; int tt=1;

2017-07-26 15:41:36 247

原创 nefuoj1208-计数dp-原地爆炸

http://acm.nefu.edu.cn/JudgeOnline/problemShow.php?problem_id=1208 n天,每天可能考试,也可能不考试。如果连续考m天就会爆炸, 问你不爆炸的方案数是多少。 dp[i][j]表示前i天,已经有j天连续爆炸的情况。 1 第i天不爆炸,以前的天数影响自动取消。 2 第i天爆炸,但是要保证他的爆炸天数不超过iinclude incl

2017-07-24 21:14:10 359

原创 HDU1114-基础dp&完全背包-F - Piggy-Bank

https://vjudge.net/contest/170788#problem/F 给定一个存钱罐初始重量和装了钱币的重量, 给定每种钱币的 重量和价值。 问你最小的价值是多少。 可知是 正好装下,dp[0]变成0,其余无穷大。 若是不要求装满,则全部为0 然后是完全背包了#include <iostream>#include <cstdio>#include <cstdio>

2017-07-23 20:58:41 230

原创 HDU1260-基础DP-H - Tickets

https://vjudge.net/contest/170788#problem/H 给定n个人 他们独自购票的时间 和他们临近人买票的时间, 问你如何选择,可以使时间最短。 得到状态转移方程。 dp[i]=min(dp[i-1]+单人i,dp[i-2],双人);#include <iostream>#include <cstdio>#include <cstring>#incl

2017-07-23 20:54:42 427

原创 HDU1176-基础dp-免费馅饼

https://vjudge.net/contest/170788#problem/G 看来我也只会写这种基础的dp了qwq 中文题意。 直接递推。 dp[i][j]为i秒j位置的最优解。 而在i秒j位置总共就这几种来源。。找一个最大的。 注意,开始没有注意起始位置,wa了两发。#include <iostream>#include <cstdio>#include <cstring

2017-07-23 20:13:34 214

原创 UVa10970-思维||记忆化-Big Chocolate

https://vjudge.net/problem/UVA-10970 有大佬说是组合数学,没有看出哪里组合了。。 给定一个m*n的巧克力,让你分割成m*n份。最少多少刀 我发现,无论是怎么切,好像刀数都一样,。ac了。。 百度了一下,还有用记忆话的 大概就是能切两刀就切,直到切成长度或者宽度为1的。 如果长和宽奇数的话,就随便切一小块,先成偶数再说。、 记忆化#include <i

2017-07-23 20:10:21 272

原创 Codeforces Round #423-水-A. Restaurant Tables

http://codeforces.com/contest/828/problem/A 给定m个 一人座位和n个二人座位。 策略是 当1人来了,如果有1人座位,给他,不然给他空着的二人座位,不然给他有一个人的二人座位。否则拒绝服务 两个人来了,如果有2人座位给他, 否则拒绝服务 人按输入顺序来了 问多少人拒绝服务。。 开始题意没理解。。。wa了两次。#include <bits/std

2017-07-23 17:07:48 222

原创 POJ - 1328-贪心(区间)-Radar Installation

https://vjudge.net/problem/POJ-1328 给定一些岛屿,这些岛屿在x轴上方,x轴下方是陆地。 给你这些岛屿的坐标,你可以在陆地(包括x轴上)建立雷达站,雷达的覆盖范围是d, 问你最少要需要多少次雷达。 如果考虑雷达的范围,就会出现无限的情况,因为是double。。 所以我们可以从岛屿的角度考虑,计算每个岛屿,能够探测他的雷达的范围,然后这个范围就是区间覆盖了,

2017-07-23 16:36:46 227

原创 POJ1013-水模拟-Counterfeit Dollar

https://vjudge.net/problem/POJ-1013 给定你A-L个硬币,称三次,给定大小关系。 up是说左边的比右边沉,down是右边的比左边的沉。 even是重量一样的意思。 三次称量一定能知道谁是假的硬币,请输出他并且判定他是重的还是轻的。 直接暴力,26种情况。 模拟过程。wa了两次,因为我还以为范围是A-K,其实是A-l。#include <iostream>

2017-07-23 10:49:38 275

原创 POJ3253-贪心-Fence Repair

给定你一个木板,问你切成m快,每次分割成两个时,花费为这个木板的长度,问你最小花费。 倒着,就是一个霍夫曼树,直接优先队列模拟。 也算一种贪心的策略#include <iostream>#include <cstdio>#include <cstring>#include <queue>using namespace std;struct cmp{ bool operator()(

2017-07-22 18:58:47 245

原创 POJ3069-贪心-Saruman's Army

https://vjudge.net/problem/POJ-3069 给定一些m个点,可以找某些点染色,染色后可以覆盖的距离为n, 问你最少染几个色,可以把所有的点都给覆盖掉。 贪心思路特别好想,每次都尽量往右。直接遍历就行。 但是我没想到代码怎么写,果然码力不行啊#include <iostream>#include <cstdio>#include <cstring>#inclu

2017-07-22 18:34:58 205

原创 POJ2396-贪心-Cleaning Shifts

http://poj.org/problem?id=2376 给定m个奶牛,和m个时间段,分别是奶牛开始的时间和结束的时间,问你如何安排,可以使得每个时间段都有奶牛,并且奶牛的数量最少 每次尽可能的向后延伸,但是还要考虑是否会出现间隙的情况。。 想出来了这个思路,但是代码特别乱。应该多看一下#include <iostream>#include <cstdio>#include <cstr

2017-07-22 16:20:20 280

原创 Codeforces Round #424 (Div. 2, )-树状数组|线段树-E. Cards Sorting

、http://codeforces.com/contest/831/problem/E 给定一副扑克,规则如下 1 输入的数组是从顶到尾的顺序。 2 每次从顶上拿扑克,当这个值在当前排堆中是最小的(可能会重复,不过没关系),我们就把他抽出来。然后继续。如果不是,我们就把他放在牌底,直到所有的牌全部都拿掉之后就完事了,问你他所需要的操作数是多少。 数据范围 扑克数量 100000。 我们可

2017-07-20 13:18:31 370 1

原创 ZOJ3827-水题-I - Information Entropy

http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3827 直接划水就好了。 三种方法,计算三种logn。 比赛的时候没看懂题,,队友写的。。。 不太清楚eps是干嘛的 自己补的。#include <bits/stdc++.h>using namespace std;/*线段树主要应用于下列情况1 区间查询*/

2017-07-20 12:27:22 211

原创 Educational Codeforces Round 1-积角排序-C. Nearest vectors

http://codeforces.com/contest/598/problem/C 给定一些向量,问你两者之间对应角最小的是哪个。 积角排序,注意最大的和最小的差别可能很大,但是角度是有周期的,所以减去 2π 之后仍然可能是最小的。其他就可以了。 还有 atan2是 (y,x)形式#include <bits/stdc++.h>using namespace std;bool cmp2

2017-07-20 08:38:23 312

原创 Codeforces Round #424 -(二分&贪心)||dp-D. Office Keys

给定n个人的位置,和k个钥匙,再给你办公室的位置。 每个人需要拿一个钥匙,然后到办公室,问你每个人都到达办公室的最短时间。 1 dp dp[i][j]为前i个人,拿了前j个的最小值。#include<bits/stdc++.h>using namespace std;typedef long long ll;const int maxn = 2005;ll a[maxn], b[max

2017-07-19 21:07:45 210

原创 POJ1840-简单hash-Eqs

https://vjudge.net/problem/POJ-1840 一个五次方程组,问你解的个数是多少个。 系数 -50–50 未知数也是-50–50 直接暴力,时间复杂度在On5,计算100*100*100*100*100,10的10次方,会tle。 一秒1e7。 所以先处理一下。把方程分成两份。左右相等就相加。 注意可能为负数,所以相加一个maxn。#include <iost

2017-07-19 19:26:10 225

原创 HDU1069-LIS变形-Monkey and Banana

http://acm.hdu.edu.cn/showproblem.php?pid=1069 我又开始热爱这个世界了。 给定m,然后是 m个长方体,分别给a,b,c,是长宽高。 让你曡这些长方体,要求下面的那个长度和宽度不能比上面的小, 每个长方体可以供应好多(意思就是可以每个都可以换种姿势摆。) 问你最大的高度。 数据小于30,所以我就枚举所有种情况,然后按照最长上升子序列的思想,给搞

2017-07-18 20:57:29 213

原创 Codeforces Round #424 (Div. 2, rated, based on VK Cup Finals)-模拟-C. Jury Marks-

http://codeforces.com/contest/831/problem/C 有一个人,他有一个初始分数,然后是m个评委,给他的分数(可正可负),然后再给你n个数,每个数都是积分过程的分数,问你初始解有多少种可能。#include <bits/stdc++.h>using namespace std;const int maxn=4000007;int main(){ int

2017-07-18 19:39:10 254

原创 Codeforces Round #109 (Div. 2)-C. Hometask-思维

http://codeforces.com/contest/155/problem/C 给定一个字符串,然后给定m,给你m个字符串,要求不能出现这些字符串,可以通过删除的操作,问你最少要删除多少个, 还以为是对每一个串,正着一次反着一次就行。 后来发现,如果串为 ab 而实际中为 aaabb,那么就要删除掉数量相对少的数。。#include <bits/stdc++.h>using nam

2017-07-18 17:13:54 297

原创 HDU5037-贪心(很好)-Frog

重点就是造成这种情况, 以保证次数最大。 当长度为l+1次,让其跳两次。 那么余数的情况呢?? 存一个变量,记录的为上一个区间最后的点和原来已经存在的石子的位置(不会大于l+1,如果大了就会再跳一次)。而这时青蛙,宁愿跳的更远,所以不会跳 以前的石子,但是又不得不跳以前的石子。 所以这时可以+1. 当青蛙跳上以后,为了让他跳的更多,我们先给他l+1让他跳。然后在让他跳多于的位置。这样又会使

2017-07-16 16:42:25 688

原创 数据结构实习-迷宫求解

我的思路是。 先广搜出最短的那个出口,然后在把每个广搜路过的点中,每一个和四周的点见一条边(起点除外),然后出口再向起点建一条边,然后在进行强连通分量的分解。但是后来我发现,即使是这样也会造成多余的点(即显示最短路径时显示了其他的点。) 后来我的思路是枚举起点四个方向建一条边,然后求点最少的情况。#include <bits/stdc++.h>using namespace std;type

2017-07-13 21:46:07 335

原创 ZOJ1633-构造模拟-Big String

http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1633 第一个a串是 “^__^”; 第二个b串是 “T.T” 第三个c是 2+1串,(b串在前) c变成b b变成a 继续相加,问你最后长度很长的串。 第n为是几。 我们发现串的长度是有限制的。当小于7时可以判断。 而不小于7,我们可以逆推回去。 根据长度

2017-07-12 21:18:58 392

原创 ZOJ3829-贪心|模拟-Known Notation

给定一个字符串,问你最少需要多少操作能让这个字符串变成后缀表达式。当时是。。一点思路都没有。看的题解,发现最好的办法就是当数字不够时,把数字放到最前面,然后如果需要的话,再转。这样次数最少。。1 首先要发现合理的条件符号数比数字少一个。当相等的时候就不正常了。2 然后先判断是否需要添加数字。如果需要的话就先行添加到最前面,然后再判断。或者,模拟这个过程。

2017-07-12 11:35:56 245

原创 zoj3822-概率dp-Domination

http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3822 给定一个棋盘,m*n这么大,要求你在这个棋盘上面放棋子,要求每行每列至少都要有一个。问你期望有多少。。 我的一开始的想法是先用组合数学什么乱七八糟的东西球出来所有的方案数(以为方案数可以递推过来,然后直接计算期望就好了) 但是推的时候好像就推错了,然后就不知道怎么

2017-07-10 15:54:45 219

空空如也

空空如也

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

TA关注的人

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