自定义博客皮肤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

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

原创 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 357

原创 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 421

原创 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 541

原创 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 938

原创 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 411

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

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

2017-10-24 14:01:28 548

原创 NOIP 2015 运输计划

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

2017-10-23 17:14:01 249

原创 NOIP模拟题 括号序列

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

2017-10-23 15:45:15 2349

原创 NOIP 2015 疫情控制

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

2017-10-23 11:31:46 372

原创 NOIP 模拟题 秘密信息

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

2017-10-23 11:21:51 515

原创 NOIP模拟题 大奖赛

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

2017-10-23 11:17:00 804

原创 NOIP模拟题 订餐

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

2017-10-23 11:14:40 556

原创 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 258

原创 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 365

原创 NOIP 2015 飞扬的小鸟

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

2017-10-20 13:52:04 384

原创 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 303 1

原创 NOIP 2011 选择客栈

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

2017-10-19 18:26:37 197

原创 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 247

原创 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 337

原创 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 365

原创 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 326

原创 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 397

原创 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 240

原创 NOIP 2013 积木大赛

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

2017-10-18 13:57:55 479

原创 NOIP 2014 联合权值

评测传送70分:枚举中间点,然后再两层循环枚举这个点的所有邻接点,两两相乘,加入和中。(可能退化为n^2) 100分:在70分的基础上加一个优化,当我们枚举了中间点,然后再枚举它的邻接点 j 时,用sum[i]表示 i 的所有邻接点的权值的和,那么以 i 作为中间点,j这个点对答案的贡献为 (sum[i]-w[j])*w[j]。 最大值则用两个数组来记 i 的邻接点的权值的最大值和次大值。时间复

2017-10-17 17:05:09 263

原创 NOIP 2013 火柴排队

评测传送首先要知道,最小距离是在两列火柴中,排名相等的两根火柴放在一行而产生的。 那么我们的任务就是计算让两列中的火柴达到上述状态需要交换的最小次数。(那么我们只交换a中的火柴就可以了) 我们想把a和b按照排名离散化一下。 然后把a中的数按照它在b中的位置赋值,求一下a中的逆序对就可以了(这时候的a要变成升序,想一想就知道了)。 当然也可以处理b。#include<iostream>#in

2017-10-17 11:23:28 276

原创 Codevs 2370 小机房的树

传送 LCA的应用。 用Tarjan的方法来找最近公共祖先,dfs过程中求出当前节点到根节点的距离。 那么ans=dep[u]-dep[lca]+dep[v]-dep[lca];#include<iostream>#include<cstdio>#include<cstring>#include<cmath>#define LL long long #define M 750009

2017-10-16 17:37:49 289

原创 LCA (Tarjan)

感谢两位大佬的博客,讲得很明白。 %dalao %dalao 模板 评测传送#include<iostream>#include<cstdio>#include<cstring>#include<cmath>#define LL long long #define M 750009 using namespace std;int head[M],to[2*M],nxt[2*M]

2017-10-16 17:34:39 222

原创 HDU 2669 Romantic

HDU 传送门 裸的拓展欧几里得#include<iostream>//HDU 2669 #include<cstdio>#include<cstring>#include<cmath>#define LL long long using namespace std;LL A,B;LL ex_gcd(LL a,LL b,LL &x,LL &y){ if(b==0)

2017-10-16 16:00:26 217

原创 洛谷10月月赛R1·浴谷八连测R1·提高组 SAC E#1 - T2一道简单题 Sequence2

SAC E#1 - T2一道简单题 Sequence2清晰版题目描述 小强拿到一个3×n的数组,要在每一列选一个数(或者不选),满足以下条件: 1.如果在第一行选,那它必须大于等于上一个数 2.如果在第二行选,那么必须小于等于上一个数 3.如果在第三行选,对于连续的一段在第三行选的数,必须满足方向相同(都小于等于上一个数或者都大于等于上一个数)20分:暴力枚举每一个位置 不选,选1,选2,选

2017-10-15 16:46:45 467 2

原创 洛谷10月月赛R1·浴谷八连测R1·提高组 SAC E#1 -T1 一道中档题 Factorial

题目大意:求n!在k进制下末尾0的个数。 做法:我们对k进行质因数分解,然后用k的质因数去除 n!,然后取num2/num1的最小值就可以了。 看数据范围,对k的质因数分解是要用rho大整数分解来做的,然而数据好像比较弱,筛到1e7就可以过的QAQ。 对于rho的应用见我前边一篇博客 欧拉函数专项#include<iostream>#include<cstring>#include<cst

2017-10-15 16:45:21 369

原创 洛谷10月月赛R1·浴谷八连测R1·提高组

SAC E#1 -T1 一道中档题 Factorial题目大意:求n!在k进制下末尾0的个数。 做法:我们对k进行质因数分解,然后用k的质因数去除 n!,然后取num2/num1的最小值就可以了。 看数据范围,对k的质因数分解是要用rho大整数分解来做的,然而数据好像比较弱,筛到1e7就可以过的QAQ。 对于rho的应用见我前边一篇博客 欧拉函数专项#include<iostream>#in

2017-10-15 16:00:40 278

原创 栅栏围大葱 dan

问题描述 m*m的方阵上有棵葱,你要修一些栅栏把它们围起来。一个栅栏是一段沿着网格建造的封闭图形(即要围成一圈)。各个栅栏之间应该不相交、不重叠且互相不包含。如果你最多修个栅栏,那么所有栅栏的长度之和最小是多少?输入格式 第一行三个整数。 接下来行每行两个整数代表某棵葱的位置。输出格式 一行一个整数代表答案。样例输入1 6 1 4 1 3 4 2 4 4 6 4 样例输出1 1

2017-10-08 11:14:46 665 2

原创 逆欧拉函数

bzoj 不知道为什么bzoj是PE那么由上述式子可以逆推得出, N=φ(N)(p1/(p1-1))(p2/(p2-1))…(pk/(pk-1)) 那我们用dfs,来递归实现。#include<iostream>#include<cmath>#include<cstring>#include<cstdio>#include<algorithm>#include<queue>#inc

2017-10-08 10:06:12 509

原创 欧拉函数专项

rho详解:http://blog.csdn.net/u012061345/article/details/48316811 欧拉函数应用与性质及求法:http://blog.csdn.net/sentimental_dog/article/details/52002608首先,先知道一个性质φ(n)=n(1-1/a1)(1-1/a2)……(1-1/ak); a1,a2……,ak为n分解的质因数

2017-10-07 21:38:17 300

原创 美妙仙人掌 cactus

Time Limit:1000ms Memory Limit:64MB题目描述 LYK在冲刺清华集训(THUSC)!于是它开始研究仙人掌,它想来和你一起分享它最近研究的结果。 如果在一个无向连通图中任意一条边至多属于一个简单环(简单环的定义为每个点至多经过一次),且不存在自环,我们称这个图为仙人掌。 LYK觉得仙人掌还是太简单了,于是它定义了属于自己的仙人掌。 定义一张图为美妙的仙人

2017-10-07 18:03:07 288

原创 LYK快跑!(run)

Time Limit:5000ms Memory Limit:64MB题目描述 LYK陷进了一个迷宫!这个迷宫是网格图形状的。LYK一开始在(1,1)位置,出口在(n,m)。而且这个迷宫里有很多怪兽,若第a行第b列有一个怪兽,且此时LYK处于第c行d列,此时这个怪兽对它的威胁程度为|a-c|+|b-d|。 LYK想找到一条路径,使得它能从(1,1)到达(n,m),且在途中对它威胁程度最小的怪

2017-10-07 16:47:46 319

原创 选数字 (select)

Time Limit:3000ms Memory Limit:64MB题目描述LYK 找到了一个 n*m 的矩阵,这个矩阵上都填有一些数字,对于第 i 行第 j 列的位置上的数为 ai,j。由于它 AK 了 noip2016 的初赛,最近显得非常无聊,便想到了一个方法自娱自乐一番。它想到的游戏是这样的:每次选择一行或者一列,它得到的快乐值将会是这一行或者一列的数字之和。之后它将该行或者该列上的数

2017-10-07 14:31:26 1221

原创 看程序写结果(program)

看程序写结果(program)Time Limit:1000ms Memory Limit:64MB题目描述LYK 最近在准备 NOIP2017 的初赛,它最不擅长的就是看程序写结果了,因此它拼命地在练习。这次它拿到这样的一个程序:scanf(“%d”,&n);for (i=1; i<=n; i++) scanf(“%d”,&a[i]);for (i=1; i<=n; i++) for

2017-10-07 10:10:05 1117

原创 NP

题意:求解N!%P 首先,如果n>=p,那么答案是0;所以80分到手。(暴力+特判)剩下的用 ∗∗分块打表∗∗**分块打表**我们把k*10^7,k∈Z 打出表(打到1000000007 也就100个数),然后对于输入的n,选一个起点直接用表里的数就可以了。 (这是正解,感觉好滑稽)#include<iostream>#include<cmath>#include<cstring>#in

2017-10-07 09:15:21 293

空空如也

空空如也

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

TA关注的人

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