自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Facico的博客

程序员之所以犯错误,不是因为他们不懂,而是因为他们自以为什么都懂。

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

原创 【NOIP2016提高组复赛】愤怒的小鸟

DescriptionSolution很明显是一个状态压缩DP的题目,不过也可以打成记忆化搜索。 设f[i]表示每个点选或不选的状态投射小鸟的最少方案。 首先预处理一个g[i][j]表示选i和选j,需要的小鸟可以经过小鸟的01状态。 然后直接DP就可以了:f[i|g[j][k]]=min(f[i|g[j][k]],f[i]+1);f[i|g[j][k]]=min(f[i|g[j][k]],f[

2016-11-30 17:14:39 4168

原创 【NOIP2016提高组复赛】蚯蚓

DescriptionSolution这题打暴力,用堆来做,理论上是可以拿80分,所以比赛还是打暴力好。 但是,正解又短又机智。 我们假设x1>x2x1>x2。 那么x1肯定会在x2之前就被剪断。 设x1x1被剪成p1和q1,p1=⌊px1⌋,q1=x1−⌊px1⌋p1和q1,p1=\lfloor px1\rfloor,q1=x1-\lfloor px1\rfloor 设x2x2被剪成p2

2016-11-29 17:29:37 4670

原创 【NOIP2016提高组复赛官】组合数问题

DescriptionSolution这道题很容易。 首先肯定要预处理,然后用矩阵前缀和。 可以用杨辉三角或者是分解质因数。 然后就没有了。Code#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>#define fo(i,a,b) for(i=a;i<=b;i++

2016-11-29 17:09:38 2308

原创 【NOIP2016提高组复赛】换教室

DescriptionSolution这题正解很短很简单,就是基础的概率期望题。 比赛的时候打floyd暴力可以过80分。 先用floyd预处理一下。 设f[i][j][k]表示第i个时间段,选了j个教室要申请(不一定成功),k表示i申请或不申请。 我们从i推到i+1,如果要推到f[i+1][j][0]的话,那么第i+1个时间段肯定在a[i+1]。这个可以从i的0状态和1状态推过来,如果从0

2016-11-29 17:05:28 3255

原创 【NOIP2016提高组复赛】玩具谜题

DescriptionSolution这就是一道模拟题吗。 向右就加,然后mod一下。向左就减,然后mod一下。Code#include<iostream>#include<cstdio>#include<cstring>#include<cmath>#include<algorithm>#define fo(i,a,b) for(i=a;i<=b;i++)#define fod(i,

2016-11-28 22:44:52 1551

原创 【NOIP2016提高组复赛】天天爱跑步

DescriptionSolution这道题是NOIP里面最难的一道题。 暴力打的好可以拿80分,比赛的时候还是打暴力比较好。 我们思考一下从x到y的路径,这个可以拆成从x到lca的路径和从lca到y的路径,这个很明显。 如果一个点i在从x到lca 的路径可以检测到的话,那么就有deep[i]+w[i]=deep[x]deep[i]+w[i]=deep[x]。 如果一个点i

2016-11-28 22:42:13 7666

原创 NOIP2016提高组总结

DAY1来到了广州,不错啊,旁边的饭店很多,可以好好的腐一下了。 一群人走进了一个小巷,住进了一个七天酒店,发现房间里面好小啊。 吃完饭后,一直都在腐败。 通知开会的同学并没有到我们的房间来,结果在结束开会的前几分钟我们才过去。 早早的睡了……第一天,状态不错。早早的到了考场。 打开C++,发现调试不了,吓了我一大跳。做到第三题的时候才发现,设置的变量要等高亮的那条东西next一下,才调的

2016-11-28 14:55:18 1260 2

原创 NOIP赛前模拟总结

前言NOIP虽然是一个比较基础的赛事,但是十分的重要,失足千古恨…… 所以,就需要NOIP赛前模拟。在这么多NOIP模拟中暴露出来的问题很多。 所以就需要总结。问题归纳对拍作为一个Oier,必须要会打暴力,比赛时候每道题都要打暴力,也就是说每题都需要对拍—-> 1、不对拍,会非常的虚,对后面的心情影响很大。 2、一次性答完题的漏洞一般不会为零。 3、一般对完拍之后,这道题目就稳了(因为两个

2016-11-17 17:21:15 806

原创 【51 Nod 1743】 雪之国度

Description雪之国度有N座城市,依次编号为1到N,又有M条道路连接了其中的城市,每一条道路都连接了不同的2个城市,任何两座不同的城市之间可能不止一条道路。雪之女王赋予了每一座城市不同的能量,其中第i座城市被赋予的能量为Wi。 如果城市u和v之间有一条道路,那么只要此刻雪之女王的能量不小于|Wu-Wv|,这条道路就是安全的。如果城市u和v之间存在两条没有重复道路的安全路径(其中

2016-11-16 22:48:31 704

原创 SPFA优化总结

简介SPFA一个很快很短适合稀疏图的单元最短路的算法。 但是有时用优化,在稠密图中跑的很快。优化优化1:SLF如果当前要入队一个点i,如果d[i] < dhead就放入队首,否则就放入队尾。这个本来要用一个双端队列来实现的,但是要一个超级好实现的方法,但是比较水,但是实测很快,加进来一个tail后,如果d[data[head+1]]>data[tail],那么swap(data[head+1],d

2016-11-14 22:02:03 2710 2

原创 【NOIP2016提高A组集训第15场11.14】过河

DescriptionSolution一开始看到这道题的时候,就想,这不就是连边题吗!!! 然后,一通乱连,然后放弃治疗…… (i,j)表示第i个桩放第j个圆盘。 结果连边其实非常的简单:从0向(i,j)(如果能连的话)连权为c[j]的边,然后(i,j)向终点连权为0的边(如果能连的话)。 然后(i,j)向(p,q)连边(如果能连的话) 然后跑一次spfa就能拿60分了。 我们来优化一下

2016-11-14 21:50:04 1074

原创 【51Nod 1319】跳跃游戏

Description有一个可以在二维平面上做跳跃的机器人,该机器人有独特的跳跃程序。该程序的跳跃距离是由一个循环序列S决定的。序列S有无穷多项,但其有一个最小周期序列,令其为A,A中有N个元素(N<=50),S[i]=A[i mod N],i从0取到正无穷。例如,A={2,5,1,1}那么S={2,5,1,1,2,5,1,1,2,5,1,1…..}。机器人的跳跃规则如下:第k次跳跃时,机器人可以跳

2016-11-12 22:39:49 1019

原创 【NOIP2016提高A组集训第14场11.12】随机游走

DescriptionYJC最近在学习图的有关知识。今天,他遇到了这么一个概念:随机游走。随机游走指每次从相邻的点中随机选一个走过去,重复这样的过程若干次。YJC很聪明,他很快就学会了怎么跑随机游走。为了检验自己是不是欧洲人,他决定选一棵树,每条边边权为1,选一对点s和t,从s开始随机游走,走到t就停下,看看要走多长时间。但是在走了10000000步之后,仍然没有走到t。YJC坚信自己是欧洲人,他认

2016-11-12 19:50:44 992

原创 【NOIP2016提高A组集训第14场11.12】最近公共祖先

DescriptionYJC最近在学习树的有关知识。今天,他遇到了这么一个概念:最近公共祖先。对于有根树T的两个结点u、v,最近公共祖先LCA(T,u,v)表示一个结点x,满足x是u、v的祖先且x的深度尽可能大。YJC很聪明,他很快就学会了如何求最近公共祖先。他现在想寻找最近公共祖先有什么性质,于是他提出了这样的一个问题:n层的满k叉树T,求对于每一对(i,j)(1≤i,j≤T的点数),LCA(T,

2016-11-12 19:10:53 1011

原创 【NOIP2016提高A组集训第13场11.11】字符串

Description某日mhy12345在教同学们写helloworld,要求同学们用程序输出一个给定长度的字符串,然而发现有些人输出了一些“危险”的东西,所以mhy12345想知道对于任意长度n的小写字母字符串,不包含危险串的字符串个数Solution一开始还打容斥,没有往动态规划的方向去想,但是这是一个很简单的动态规划的题目。 那么直接设f[i][j]为做到字符串第i个,危险串匹配到第j个。

2016-11-11 16:16:23 814

原创 【NOIP2016提高A组集训第12场11.10】图的半径

Description mhy12345学习了树的直径,于是开始研究图的半径,具体来说,我们需要在图中选定一个地方作为中心,其中这个中心有可能在路径上。 而这个中心的选址需要能够使得所有节点达到这个中心的最短路里面最大值最小(也就是说离中心最远的结点距离尽可能小),求出这个最大值的最小值,作为图的半径。Solution看到这题,一开始不是怎么会做,但是看到n≤200,就想开始打暴力。 暴力打着

2016-11-10 21:42:19 657

原创 【NOIP2016提高A组集训第12场11.10】灵知的太阳信仰

Description在炽热的核熔炉中,居住着一位少女,名为灵乌路空。 据说,从来没有人敢踏入过那个熔炉,因为人们畏缩于空所持有的力量——核能。 核焰,可融真金。咳咳。 每次核融的时候,空都会选取一些原子,排成一列。然后,她会将原子序列分成一些段,并将每段进行一次核融。 一个原子有两个属性:质子数和中子数。 每一段需要满足以下条件: 1、同种元素会发生相互排斥,因此,同一段中不能存在两个

2016-11-10 20:52:09 1552

原创 【51Nod 1255】字典序最小的子序列

Description给出一个由a-z组成的字符串S,求他的一个子序列,满足如下条件:1、包含字符串中所有出现过的字符各1个。 2、是所有满足条件1的串中,字典序最小的。例如:babbdcc,出现过的字符为:abcd,而包含abcd的所有子序列中,字典序最小的为abdc。Solution一开始看到这题就有一个思路:如果现在找出来的答案末尾是x,找到了一个字符y,那么如果y比x要小,y后面还有x存在

2016-11-09 22:42:31 2485

原创 【NOIP2016提高A组集训第10场11.8】时空传送

Description经过旷久的战争,ZMiG和707逐渐培养出了深厚的感♂情。他们逃到了另一块大陆上,决定远离世间的纷争,幸福地生活在一起。钟情707的neither_nor决心要把他们拆散,他要动用手中最大杀器之一——超时空传送仪来分开ZMiG和707。ZMiG和707所在的大陆可以被描述成N个点M条边的有向无环图。707和ZMiG自带魔法防御,neither_nor只可以用超时空传送仪把707

2016-11-08 22:46:53 638

原创 【NOIP2016提高A组集训第10场11.8】力场护盾

DescriptionZMiG成功粉碎了707的基因突变计划,为了人类的安全,他决定向707的科学实验室发起进攻!707并没有想到有人敢攻击她的实验室,一时间不知所措,决定牺牲电力来换取自己实验室的平安。 在实验室周围瞬间产生了一个无限大的力场护盾,它看上去无懈可击!不过ZMiG拥有惊人的双向观察能力,经过他的反复观察,找到了这个护盾的N个弱点,他本想逐一击破,却发现一股神秘力量阻止了他的

2016-11-08 22:31:57 697

原创 【NOIP2016提高A组集训第9场11.7】涂色游戏

DescriptionSolution一般求填色方案的题目都要用到动态规划。 看到数据范围有一个超级大的数,那么很显然就是矩阵乘法,往那个地方去想。 首先要填颜色: 所以设f[i][j]表示i个格子填上j个颜色的方案数,那么f[i][j]表示i个格子填上j个颜色的方案数,那么 f[i][j]=f[i−1][j−1]∗(p−(j−1))+f[i−1][j]∗jf[i][j]=f[i-1][j-

2016-11-07 21:07:49 959 2

原创 【NOIP2016提高A组集训第9场11.7】平均数

DescriptionSolution这是一道很经典的题目,模型也很经典。 首先,肯定是二分答案出mid。 假设我们现在要求前k大, 要找出所有的点对满足sum[r]−sum[l]r−l≥mid{sum[r]-sum[l]\over r-l}≥mid,那么把不等式转化一下sum[r]−mid∗r≥sum[l]−mid∗lsum[r]-mid*r≥sum[l]-mid*l,要满足至少k个是满足这

2016-11-07 20:30:54 565

原创 【NOIP2016提高A组集训第9场11.7】Simple

DescriptionSolution一开始就想到了扩展欧几里得。 但是发现都要是非负整数,所以直接做不行。然后枚举一下n的系数,直接算出m的系数,虽然这是错误的方法,但是有50分。 用上面的方法ans=∑⌊qn⌋x=0q−x∗nm+(x!=0)ans=\sum_{x=0}^{\lfloor{q\over n}\rfloor}{q-x*n\over m}+(x!=0) 因为x=0的时候y不能等

2016-11-07 17:29:35 585

原创 【GDOI2017模拟11.5】Market

DescriptionSolution这题一眼就是离线之后,用DP来做。 但是一开始我用单价和来做DP的键值,但是没有发现,单价的范围很大。所以应该以价值来做键值,然后存最小需要的单价和。求答案的时候二分就好了。Code#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>

2016-11-05 15:14:10 603

原创 【NOIP2016提高A组集训第8场11.5】心理学概论

Description上了大学之后,小W和小Z一起报了一门虐课,在课本上遇到了一份关于嫉妒的案例。 很久很久以前,森林里住着一群兔子。 其中有三只兔子,第一只兔子喜欢吃萝卜,第二只兔子喜欢吃青菜,第三只兔子喜欢吃三文鱼中卷寿司。 有一天,他们收集了 n 个篮子的食物,其中每个篮子里恰好装了一只萝卜,一捆青菜和一个三文鱼中卷寿司,每个食物都有一个美味度。然后他们打算分吃篮子里的食物。如果第一只兔

2016-11-05 14:37:50 760 5

原创 【NOIP2016提高A组集训第8场11.5】禅与园林艺术

Description上了大学之后,小W和小Z一起报了一门水课,在做作业时遇到了问题。 有一个长度为 n 的数列{ai},为一列树木的美观值。 现在有m 次询问,每次给出三个数l,r和P, 询问对于所有的l <= l’ <= r’ <= r (a[l’] + a[l’ + 1] + … + a[r’]) mod P的最小值。Solution这道题,和51Nod的一道叫N的倍数的题目是相同类

2016-11-05 14:19:54 783

原创 【NOIP2016提高A组集训第7场11.4】推冰块

DescriptionDpstr最近迷上了推冰块。冰地是一个n行m列的网格区域,第i行第j列的格子记为(i,j),也就是左上角为(1,1),右下角为(n,m)。每个格子可能是冰面、障碍物、减速带三者之一。其中,冰地外围(即第0行、第n+1行、第0列、第m+1列)的所有格子均有障碍物。除此之外,冰地内共有k个障碍物和减速带,其余格子为冰面。 初始时,有一个冰块位于(1,1)处。Dpstr每次可以选择

2016-11-04 20:57:58 9443

原创 【NOIP2016提高A组集训第7场11.4】分解数

DescriptionDpstr学习了动态规划的技巧以后,对数的分解问题十分感兴趣。 Dpstr用此过程将一个正整数x分解成若干个数的乘积:一开始令集合A中只有一个元素x,每次分解时从A中取一个元素a并找出两个大于1且互质的整数p,q,要求pq=a,然后将a分解成两个元素p和q,也就是从A中删去a并加入p和q。Dpstr把正整数x用该过程能分解的次数的最大值称为x的分解数。 例如66的分解数为2

2016-11-04 20:54:53 1002

原创 【NOIP2016提高A组集训第7场11.4】连锁店

DescriptionDpstr开了个饮料连锁店,连锁店共有n家,出售的饮料种类相同。为了促销,Dpstr决定让每家连锁店开展赠送活动。具体来说,在第i家店,顾客可以用ai个饮料瓶兑换到bi瓶饮料和1个纪念币(注意不足ai个饮料瓶则不能兑换)。一家店可以兑换多次,兑换得到的饮料瓶还可以继续用于兑换。 小C买了s瓶饮料,他想知道用这s瓶饮料最多可以兑换到多少个纪念币。Solution这题明显是贪心。

2016-11-04 20:45:28 1071

原创 第k短路的求法

Description从一个点s到t的第k短的路径。Solution我以前只会打从一个点到另一个点的最短路径。 后来去看了看k短路径的求法。A_Star算法设估价函数g[i]=f[i]+p[i]g[i]=f[i]+p[i],f[i]f[i]表示i到t的最短路径的长度,p[i]p[i]表示s到i目前走得距离。 首先,我们把原图的边全部反向连边。然后求出所有的点到t的最短路径。 然后,我们把s丢进

2016-11-03 17:22:11 2105

原创 【GDOI2017模拟11.3】永恒的契约

Description宅邸迅速的燃烧着,必须带贝蒂走出禁书库!凭着感觉,又一次直接找到禁书库的门。 “你,是那个人嘛?”400年了,当初圣域建立结界时没有进入圣域,被伤了心的人工精灵贝蒂,与强欲魔女签订契约,守护宅邸的禁书库,直至“那个人”的到来,那个人会解开贝蒂的心结。 “我不是那个什么人,但我会成为你唯一的人。我会给你幸福!” 精灵与人签订契约,从此相依为命。这便是,永恒的契约。宅邸里,罗

2016-11-03 16:07:23 778

原创 【NOIP2016提高A组集训第5场11.2】夕阳

Description“我有个愿望,我希望在灿烂千阳时遇见你。” 这是个有n个点的世界,有m条无向边连接着这n个点,但是不保证点之间能够互相到达。 “这个世界的夕阳,只在奇数长的简单路径的尽头。”一个神如是说。 于是我想知道对于一个点对(x,y),x到y之间的所有简单路径中是否存在长度为奇数的路径,只有这样,我才能找到存在有夕阳的路。Solution如果两个点存在奇数的路径,那么这两个点存在于

2016-11-02 20:36:20 746

原创 【NOIP2016提高A组集训第4场11.1】平衡的子集

Description夏令营有N个人,每个人的力气为M(i)。请大家从这N个人中选出若干人,如果这些人可以分成两组且两组力气之和完全相等,则称为一个合法的选法,问有多少种合法的选法?Solution看到范围只有20,我已开始就打暴力,我以为可以快速判断是否合法,但是失败了。 正解超级机智。 中途相遇法:首先把这20个数拆成两个数集,然后每个点有三个值-1,0,1,那么很明显就是-1就把这个数放到

2016-11-02 17:31:47 774

空空如也

空空如也

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

TA关注的人

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