自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

hjx

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

原创 P1417 烹调方案

题目传送做法:贪心+01背包这里贪心的方法是很重要的。类似的题目还有P1012 拼数和NOIP 国王游戏贪心的原则 a1−(t+c1)∗b1+a2−(t+c1+c2)∗b2>a2−(t+c2)∗b2+a1−(t+c1+c2)∗b1a1-(t+c1)*b1+a2-(t+c1+c2)*b2>a2-(t+c2)*b2+a1-(t+c1+c2)*b1 得到 c1∗b2<c2∗b1c1*b2<c2*b1

2017-10-26 11:37:39 266

原创 刷题#R4

题目链接 T1 模拟即可,但是要仔细一点。 T2 素数筛,前缀和,简单二分就可以过。 T3 30分floyed暴力。 T1#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;const int N=100009;char s[N];int n,sl[N

2017-10-31 13:58:20 386

原创 刷题#R3

题目链接 T1 60分可以写一些特判和暴力。 100分dp,解释一下dp的做法。 我们用f[i][j]表示跳了i次,到第j层楼然后跳下去,需要的最小花费。 还需要知道一个策略,如果跳过的楼是一样的,那么以高度升序或者降序肯定比乱跳更优。 那么我们先将所有的楼按照高度升序或者降序排一下,然后dp就可以了。 根据f数组的定义,那么f[0][i]=c[i]; 然后有 f[i][j]=

2017-10-30 17:11:45 261

原创 刷题#R1

立方数(cubic) Time Limit:2000ms Memory Limit:128MB题目描述 LYK定义了一个数叫“立方数”,若一个数可以被写作是一个正整数的3次方,则这个数就是立方数,例如1,8,27就是最小的3个立方数。 现在给定一个数P,LYK想要知道这个数是不是立方数。 当然你有可能随机输出一些莫名其妙的东西来骗分,因此LYK有T次询问~输入格式(cubic.in)

2017-10-29 11:45:47 282

原创 洛谷10月月赛R2·浴谷八连测R4

Problem A. 逃避 (nigeru.c/cpp/pas) Input file: nigeru.in Output file: nigeru.out Time limit: 1 second Memory limit: 8 megabytes给定一篇只含有大小写字母,空格以及 ′ . ′ (不含引号)的长度为 L 的文章。文章被若干个 ′ . ′ 划分 成若干个句子,句子被若

2017-10-28 15:33:11 332

原创 洛谷10月月赛R2·浴谷八连测R3 -Chtholly-

T1 浮游大陆的68号岛 T2 Chtholly Nota Seniorious T1 这个题还是比较简单的,毕竟是第一题。 首先,不要想复杂的数据结构,因为中间没有修改值,蒟蒻就是因为高大上的数据结构不精通,所以没有走弯路喽。用一个前缀和来记录储物点的物件数目; dis数组记录到1点的距离; cost数组记录前i个储物点的物品都搬到1点的花费。 接下来就是模拟了。 分为三种情况

2017-10-27 15:31:47 446

原创 P1868 饥饿的奶牛(区间问题)

题目传送和 P1280 尼克的任务差不多 不重叠的区间最大覆盖。 dp解法。#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<vector>#define LL long longusing namespace std;const int M=3000009;const i

2017-10-27 10:53:30 421

原创 最多区间

原题 请允许我起个很土的名字。 题目大意:有多个活动,每个活动都有开始和结束的时间,在同一时刻不能同时参见多个活动,问最多能参加多少个活动? 对于100%的数据,n≤1000000,0≤ai<bi≤1000000。贪心。 按照r从小到大排序,肯定优先选择r小的,这样能给后面留出更多的空间。#include<iostream>#include<cstdio>#include<cstring

2017-10-26 16:59:37 272

原创 P1736 创意吃鱼法

题目传送这个题和最大正方形差不多,是它的升级版。 不同之处是这个题有约束条件:“如果某个正方形子矩阵的某条对角线上都有鱼,且此正方形子矩阵的其他地方无鱼” 那么对于以i,j为右下角的,我们处理出b[i][j]表示从i,j开始左最远有多少个连续的0,c[i][j]表示从i,j往上最多有多少个连续的0,那么就有f[i][j]=min(f[i−1][j−1],min(b[i][j−1],c[i−1][

2017-10-26 15:52:31 329

原创 P1855 榨取kkksc03

题目传送二维费用的01背包。#include<iostream>#include<cstdio>#include<cstring>#include<vector>#include<algorithm>#include<cstdlib>#define LL long longusing namespace std;int n,m,T,f[209][209];int w1[109],w

2017-10-26 14:18:39 401

原创 P1508 Likecloud-吃、吃、吃

题目传送dp或者记忆化搜索都可以过吧。 但是我的记忆化搜索莫名其妙的WA了。 dp轻松AC.#include<iostream>#include<cstdio>#include<cstring>#include<vector>#include<algorithm>#include<cstdlib>#define LL long longusing namespace std;in

2017-10-26 11:10:18 198

原创 P1282 多米诺骨牌

题目传送最终还是看了题解。我一开始想的dp方程的两个状态分别表示第i个骨牌,翻转j次,记录的值为最小的差,最后扫一遍f[n],应该是可以得出答案的,然而这种做法真的可以吗???正确的解法: 我们用f[i][j]表示到第i个骨牌,得到差值为j,最小的翻转次数。 那么转移方程就出来了 f[i][j]=min(f[i−1][j−(a[i]−b[i])],f[i−1][j+(a[i]−b[i])]+1

2017-10-26 10:15:20 414

原创 P1280 尼克的任务

题目传送我们用f[i]表示前i-1分钟最多空闲了多少分钟。 那么对于每个任务,f[i+t[i]]=max(f[i+t[i]],f[i]); 而如果i处没有任务,那么f[i+1]=f[i]+1#include<iostream>#include<cstdio>#include<cstring>#include<vector>#include<algorithm>#include<cstd

2017-10-26 09:18:56 253

原创 P2066 机器分配

题目传送这个题是简单的dp+递归输出。注意一个问题,是要求字典序最小的,所以在递归时,倒着循环,而且找到一个合适的值就要break,否则就会在后面将前面的值覆盖。#include<iostream>#include<cstdio>#include<cstring>#include<vector>#include<algorithm>#include<cstdlib>#define LL

2017-10-26 08:07:32 282

原创 NOIP 模拟题 天上掉馅饼

C 天上掉馅饼 文件名 输入文件 输出文件 时间限制 空间限制 bonus.pas/c/cpp bonus.in bonus.out 1s 128MB题目描述 小 G 进入了一个神奇的世界,在这个世界,天上会掉下一些馅饼。今天,天上 会随机掉下 k 个馅饼。 每次天上掉下馅饼, 小 G 可以选择吃或者不吃(必须在下一个馅饼掉下来之前 作出选择,并且现在决定不吃的话以后也不能吃) 。 馅

2017-10-25 17:00:03 517

原创 NOIP 模拟题 国际跳棋

B 国际跳棋 文件名 输入文件 输出文件 时间限制 空间限制 chess.cpp/c/pas chess.in chess.out 1s 512MB题目描述 国际跳棋是一种古老的棋类游戏,远在古埃及法老时期就已存在,现代国际跳 棋是在 12 世纪定型的。国际跳棋是由各国的民族跳棋演变而来,其历史源远流长。 简化版(与标准国际跳棋略有差别)国际跳棋规则: • 国际跳棋的棋盘由 10 × 1

2017-10-25 16:50:52 1590

原创 NOIP 模拟题 消失的数字

A 消失的数字 文件名 输入文件 输出文件 时间限制 空间限制 del.cpp/c/pas del.in del.out 1s 512MB 题目描述 现在,我的手上有 n 个数字,分别是 a 1 ,a 2 ,a 3 ,…,a n 。 我现在需要删除其中的 k 个数字。当然我不希望随随便便删除,我希望删除 k 个数字之后,剩下的 n − k 个数中有最多的不同的数。 输入格式 第一行两

2017-10-25 16:45:00 324

原创 NOIP 模拟题 跳跃

C 跳跃 文件名 输入文件 输出文件 时间限制 空间限制 jump.cpp/c/pas jump.in jump.out 1s 512MB 题目描述 美丽国有 n 座小岛。这些小岛排成了一条直线,依次编号为 0,1,2,3… 有的小岛 上有金块,有的小岛上没有。美丽国有一个巨人 Bob,有一天他决定从第 0 个岛开 始,一直往后跳,看看自己能收集多少金块。 当然,Bob 不是没有目的性

2017-10-24 17:47:26 390

原创 NOIP 模拟题 小G的城堡

文件名 输入文件 输出文件 时间限制 空间限制 castle.pas/c/cpp castle.in castle.out 1s 128MB题目描述 小 G 家有一座城堡。城堡里面有 n 个房间,每个房间上都写着一个数字 p i 。小 G 拉着几个小伙伴在城堡里面玩耍, 他们约定, 如果某个人当前站在 i 房间里面, 下 一步这个人就会去 p i 房间,再下一步这个人去 p p i 。 为

2017-10-24 17:45:16 493

原创 NOIP 模拟题 小G搭积木

文件名 输入文件 输出文件 时间限制 空间限制 box.cpp box.in box.out 2s 128MB题目描述 小 G 喜欢搭积木。 小 G 一共有 n 块积木, 并且积木只能竖着一块一块的摞, 可 以摞多列。小 G 的积木都是智能积木,第 i 块积木有一个情绪值 X i 。当摞在该积 木上面积木总数超过 X i 时,i 号积木就会不高兴。小 G 情商这么高,肯定不希望 有积木不高

2017-10-24 17:40:24 920

原创 NOIP 模拟题 排列

题目描述 小 G 喜欢玩排列。现在他手头有两个 n 的排列。n 的排列是由 0,1,2,…,n − 1 这 n 的数字组成的。对于一个排列 p,Order(p) 表示 p 是字典序第 Order(p) 小的 排列(从 0 开始计数) 。对于小于 n! 的非负数 x,Perm(x) 表示字典序第 x 小的排 列。 现在,小 G 想求一下他手头两个排列的和。两个排列 p 和 q 的和为 sum

2017-10-24 14:17:24 372

原创 NOIP 模拟题 奇怪的字符串

题目描述 有一天,小 A 的女票为了让小 A 证明他对她的忠诚,要求小 A 生成一个长度 为 n 的、全由小写英文字母构成的字符串,只能使用 k 种字母。要求满足: • 字符串中相邻的两个字母不能相同。 • 必须出现恰好 k 种不同的字母。 这样的合法字符串可能有很多,小 A 的女票要求小 A 输出字典序最小的那个。 小 A 太笨了,但是小 A 又不希望丢掉女票,希望你帮帮他。输入格式

2017-10-24 14:01:28 530

原创 NOIP 2015 运输计划

评测传送二分答案+LCA+树上差分最好用Tarjan求LCA,有的oj会卡倍增。做法: 我们用LCA求出需要查询的每个计划的路径长度。 然后二分答案,check( )的时候,我们把大于mid的路径(因为这一些都是要去边的)求一下交点(边), 如果并非全都都交于一条边或者去掉交边后也不能让这些路径都小于等于mid,那么mid就是不可以的。 求交边时,用到树上差分。#include<iostre

2017-10-23 17:14:01 214

原创 NOIP模拟题 括号序列

题目描述 课堂上,Felix 刚刚学习了关于括号序列的知识。括号序列是一个只由左括号“(” 和右括号“)”构成的序列; 进一步的, 一个合法的括号序列是指左括号和右括号能 够 一一匹配的序列。 如果用规范的语言说明,一个合法的括号序列可以有以下三种形式: 1 S=“”(空串) ,S 是一个合法的括号序列; 2 S=XY,其中 X,Y 均为合法的括号序列,则 S 也是一个合法的括号序列;

2017-10-23 15:45:15 2315

原创 NOIP 2015 疫情控制

评测传送二分答案+贪心。 越往上越优,所以在枚举的范围内,能往上就往上。 细节处理很重要。 我的代码有一处是待优化的,调了一下午,身心俱疲,不想再写了。 就这样吧 95分。#include<iostream>#include<cstdio>#include<queue>#include<cstring>#include<vector>#include<algorithm>#def

2017-10-23 11:31:46 338

原创 NOIP 模拟题 秘密信息

题目描述 Irene 想用以下的方法加密一条信息(这是她从密码学书上自学来的) : 假定这条信息可以用一个字符串 S 表示,其中 S=BCAAD.(其中‘.’代表字符串结 尾) 。Irene 首先把 S 的所有循环同构串写下来(所谓循环同构即是不断地把字符 串开头的字符移动到尾端) : BCAAD. CAAD.B AAD.BC AD.BCA D.BCAA .BCAAD 接下来她

2017-10-23 11:21:51 497

原创 NOIP模拟题 大奖赛

题目描述 Lancelot 市近期要举办大奖赛啦!住在市里的市民都十分兴奋,Morgan 也不例 外。他查了一下比赛的信息,发现比赛一共由 N 场,并且每一场的门票价格可能 会不相等。Morgan 留给比赛的预算是 K 元;他想知道,一共有多少种买票的方 案,使得门票之和不超过 K 呢?输入 第一行两个整数 N 与 K,代表比赛的场数和自己的预算。 第二行 N 个整数 Ai,代表每场比赛

2017-10-23 11:17:00 762

原创 NOIP模拟题 订餐

题目描述 这个周末,Joe 一如既往的拿出了外卖的点餐单。菜单上从上到下列着 N 个菜, 每个菜 Joe 会列出一个美味值。Joe 这次希望从菜单上连续地点 K 个菜,并且美 味值之和最大。 但在计算美味值之和时,Joe 有自己的一套计算方法:由于他会按照顺序享受这 K 个菜,并且越吃越后面的菜他就越享受,所以对于他吃的第 i 个菜,设它的美 味值为 D,美味值之和就会加上 D*i。例如

2017-10-23 11:14:40 517

原创 NOIP 2015 愤怒的小鸟

评测传送状态压缩+dp; 我们用f[s]表示消灭掉s这个状态的猪最少需要几次。 预处理出attack[i][j],表示穿过i,j这两只小猪的曲线能打下的猪。 那么f[s]=min(f[s],f[s^(s&attack[j][k])]);#include<iostream>#include<cstdio>#include<cstring>#include<cmath>#define LL

2017-10-22 10:21:32 243

原创 NOIP 2003 加分二叉树

评测传送这个题可以记忆化搜索做的。 注意边界条件。 对于先序遍历,递归就可以了(在dfs的时候用一个数组记录根节点就可以了)。#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<ctime>#include<queue>#define LL long longusing nam

2017-10-20 15:54:04 331

原创 NOIP 2015 飞扬的小鸟

评测传送30分的搜索; 70分的裸dp; 100分的复杂度压缩。 需要注意的问题是H数组要初始化。我的代码一开始在没有到达终点而且没有飞过一颗柱子时是没有输出的,一开始在luogu,vijos上都过了,在uoj上检查出了这个小bug,已改。看了了这位大佬的博客,在此表示感谢和膜拜。 30分#include<iostream>#include<cstdio>#include<cstring

2017-10-20 13:52:04 371

原创 NOIP 2015 子串

评测传送一开始做就想暴力,蒟蒻的dp实在是太弱了。言归正传。 我们用f[i][j][p][0/1]表示用了a串前 i 个字符作为p段,匹配了b串前 j 个字符(0表示第i个字符没有用,1表示第i个字符用了)。 那么有f[i][j][p][0]=f[i−1][j][p][1]+f[i−1][j][p][1];f[i][j][p][0]=f[i-1][j][p][1]+f[i-1][j][p][1]

2017-10-20 08:54:32 255 1

原创 NOIP 2011 选择客栈

评测传送第一次做的时候读错题目,以为咖啡店也和他们住的客栈同一色调,全WA(哭),惨痛的教训!对于每一种色调,我们先求一遍后缀和。 然后对于不能作为咖啡店的这种色调的客栈,它可以与离它最近的咖啡店后面的所有同一色调的客栈组成一种方案。而可以作为咖啡店的这种客栈,则可以与它后面所有的相同客栈组成一种方案。 对于每一种色调都这样处理就好了。 时间复杂度:O(n*k)#include<iostrea

2017-10-19 18:26:37 185

原创 NOIP 2012 开车旅行

评测传送n^2预处理出最大值次大值。 模拟即可。 可以过掉70分。#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<ctime>#include<cmath>#define LL long long#define DO doubleconst int N=100009;c

2017-10-19 15:26:01 213

原创 NOIP 2012 国王游戏

评测传送贪心,按照a*b升序排序,如果相同,则a小的在前。如果直接上单纯的计算会炸掉,60分。需要加高精。我压了4位。#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<ctime>#include<queue>#define LL long longconst long long

2017-10-19 14:11:01 322

原创 NOIP 2012 Vigenere 密码

评测传送模拟呗。 我是打表过的。 貌似很无脑。 但是T1我就随便浪了。#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<ctime>#include<queue>#define LL long longusing namespace std;char K[109],M[1

2017-10-19 14:07:10 332

原创 NOIP 2014 寻找道路

评测传送先反向跑一边bfs,然后将到达不了的点以及它的邻接点删掉。(注意只删一层) 然后再正向跑一遍bfs就可以了。#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<ctime>#include<queue>using namespace std;const int N=100

2017-10-18 17:06:26 315

原创 NOIP 2013 货车运输(最大生成树+倍增LCA/Tarjan)

评测传送最大生成树+LCA(倍增或Tarjan)我的Tarjan TLE了 倍增可以过,而且很快。倍增#include<iostream>#include<cstdio>#include<algorithm>#include<vector>#include<queue>#include<cstring>const int N=10009;const int M=50009;cons

2017-10-18 14:31:17 379

原创 NOIP 2013 花匠

评测传送这个题是DP? 贪心可以做的。 将相邻的相同高度的合并,搞一下波峰波谷以及ans+1-1的就可以了#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>using namespace std;const int N=100009;int n,a[N],ans;

2017-10-18 14:07:44 208

原创 NOIP 2013 积木大赛

评测传送其实这道题比起其他年份的T1还是算难的。 花费时间:40min+我的做法是: 用一个栈,来存某一段。 看图理解 我们先将第一段橙色的入栈,因为这是第一段,所以次数是st[top]; 然后清空栈,将绿色的入栈,需要的次数是st[top]-st[1]=2;(因为是递增的,所以已经清空的上一段最后一个一定比当前这一段的第一个高,所以在之前就可以将这一段的这个高度给覆盖掉,所以需要的次数是

2017-10-18 13:57:55 468

空空如也

空空如也

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

TA关注的人

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