![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
NOIP复赛
nanhan27
高中生
展开
-
NOIP2012复赛DAY2
1、同余方程【题目分析】 其实也不用分析了,这道题是作为我们的数论入门题来练的。如果在考场上碰到这种恶心的数学题,不管敲得对敲不对,反正一定要把暴力先敲好。 http://blog.csdn.net/ycdfhhc/article/details/44260687 作为一个蒟蒻,想解释但还是心有余而力不足啊。不懂的小伙伴自行学习,早就懂的小伙伴也可以温习一下。【代码】#inc原创 2016-11-12 15:37:53 · 429 阅读 · 1 评论 -
SRM552 Div1Medium FoxAndFlowerShopDivOne
【分析】 题目核心的意思就是找两个不相交的矩形并维护矩形中的信息。 然而朴素的暴力枚举当然是过不了的(n≤30) 因为做过求面积这类的问题,所以就想到了扫描线。 而且这个扫描线既要枚举垂直于x轴的,也要枚举垂直于y轴的。 但是单纯的扫描线并不能解决问题。我们要满足区域内百合花的数量与牵牛花的数量之差的绝对值不超过K的情况下再去寻找数量最大的。 我们将百合花定义为1,牵牛花定义为-1。原创 2017-05-03 18:58:46 · 333 阅读 · 0 评论 -
NOIP2016换教室
#include using namespace std;#define db double#define M 2005int a[M],b[M];int n,m,v,e;db p[M];int dis[M][M];db dp[M][M][2];db ans=1e18;int main(){ scanf("%d %d %d %d",&n,&m,&v,&e); f原创 2017-04-02 15:25:03 · 214 阅读 · 0 评论 -
NOIP2016组合数问题
组合数问题【题目分析】 dp不解释。首先要来一个组合数将Cnm的值都预处理出来,不过在加起来的时候记得取模。 接下来显然也是用dp的O(n*m)处理。通过观察dp[i][j]与dp[i-1][j]、dp[i][j-1]中相差了什么,相加时又有什么重复了,就减掉,就好了。 不过要注意边界的问题。【代码】#define M 2000#include<cstdio>#include<cstrin原创 2016-12-04 14:34:42 · 934 阅读 · 0 评论 -
NOIP2016愤怒的小鸟
#define M 20#include#include#include#includeusing namespace std;double a,b,x[M],y[M];int dp[1<<M],g[M][M];int n,m,cas;bool chk(double x,double y){ if(x>y)return x-y1e-6); return y-x1e原创 2016-12-28 20:51:14 · 968 阅读 · 0 评论 -
NOIP2016蚯蚓
蚯蚓【题目分析1】 看到题目二话不说,敲了暴力的堆,先把可以水到的裸分给拿到先。【代码1】(65分)#include#include#define M 6000005#include#include#includeusing namespace std;void Rd(int &res){ char c;res=0; while(c=getchar(原创 2016-12-17 09:03:11 · 384 阅读 · 0 评论 -
NOIP2012Vigenère 密码
Vigenère 密码【题目分析】 这就是一道找规律的题目,可别忘了将自己找出的规律多模拟几次,不然就有可能悲剧了。【代码】#include<cstdio>#include<cstring>char A[1005],a[1005],B[1005];int main(){ scanf("%s %s",a,B); int n=strlen(a),m=strlen(B);原创 2016-11-14 18:24:41 · 356 阅读 · 0 评论 -
NOIP2012开车旅行
开车旅行【题目分析】 看了几遍题目,发现这是一道模拟题,可普通的去模拟,超时是妥妥的。首先,我们一定要先预处理出在当前这个点,A和B会去向那个城市(否则每次在模拟的时候,还要先知道要去哪里,这也太鬼畜了)。我们可以用一个对来维护高度有序,A和B要去的点一定是大于等于h[i]的两个和小于h[i]的两个点。 其次,我们也可以知道需要花费的时间。我们基于以往做LCA等在树上操作的题目的想法,知道了可以原创 2016-11-14 18:32:08 · 440 阅读 · 0 评论 -
NOIP2012国王游戏
国王游戏【题目分析】 看到数据的范围,只有40%数据是可以用二进制过的。然而这也打消我们暴力枚举的念头。 思路从枚举到了贪心。 如果相邻的两个大臣进行交换,对之后的区间的答案并不影响。 就要进行神奇的数学推导%&*%&……()& 推得—>如果 ai∗bi<a(i+1)∗b(i+1)ai*bi<a(i+1)*b(i+1) 那么答案会更优。 如果就这样也挺好,但为什么还要考我的臭臭的高精原创 2016-11-14 18:28:43 · 505 阅读 · 0 评论 -
NOIP2011观光公交
观光公交【题目分析】 一看题目的数据范围,就觉得是一道dp题,然后就在考虑状态如何转移,然后就……..放弃了,这TM根本就不是一道dp题,这一次使用加速器会对接下来的一段区间造成影响,但我怎么知道影响到哪里! 清空之前的思路,我们从原始的思路开始想,枚举。枚举这个加速器在哪一段使用,这样会对最终的答案造成什么影响,影响有多大。我们发现,车的出发时间与自身到达的时间、这个站点来的最晚的那个人的时间原创 2016-11-14 18:23:45 · 291 阅读 · 0 评论 -
NOIP2011聪明的质监员
聪明的质监员【题目分析】 看到最小值,自然就往二分答案上想了。若取得参数W小,则检验结果必然大,反之,检验结果必然小,这是具有明显的单调性的。他让我们求最小的绝对值,那就求呗。 又是一道要注意long long的题目,不开心。【代码】#define M 200005#include<cstdio>#include<cstring>#include<iostream>#include<al原创 2016-11-14 18:21:49 · 337 阅读 · 0 评论 -
NOIP2011复赛DAY2
NOIP2011——DAY21、计算系数相信看到这道题的时候,大家都有那么一丝丝的莫名的心慌(可怜的大家),作为第一题,他为什么不做好自己送分的职责,反而又要注意去模,又要注意long long。 相信只要略微有一点数学底子的同学知道,这其实就是杨辉三角,对一个ioer来说也就是组合数,用dp的思想就可以解决了。(不知道杨辉三角的,你dp怎么学的…)#define M 100原创 2016-11-12 12:56:56 · 424 阅读 · 0 评论 -
NOIP2011计算系数
计算系数【题目分析】 相信看到这道题的时候,大家都有那么一丝丝的莫名的心慌(可怜的大家),作为第一题,他为什么不做好自己送分的职责,反而又要注意去模,又要注意long long。 相信只要略微有一点数学底子的同学知道,这其实就是杨辉三角(或组合数),对一个oier用dp的思想就可以解决了。(不知道杨辉三角的,你dp怎么学的…)【代码】#define M 1005#include<cstdio>原创 2016-11-14 18:20:41 · 403 阅读 · 0 评论 -
NOIP2011Mayan 游戏
Mayan 游戏【题目分析】 这题与之前写过的天天爱消除十分的相似(想死)。 这题的最难点在于消除、下落与合并: 显然是用个while来操作不断消除与不断下落、不断合并,而消除、下落与合并又是相对独立的函数, 所以每个函数的衔接十分重要。(如果不是暴搜,起码还能水到部分分,但是在赛场上调暴搜是一件十分尴尬的事情,因为如果没调出来,真的就要爆炸了)【代码】#include<cs原创 2016-11-14 18:19:20 · 279 阅读 · 0 评论 -
NOIP2011选择客栈
选择客栈【题目分析】 这是一道比较好玩的题目,情景感比较强。而问题的实质就是: 1、将同种颜色的客栈进行处理。 2、对于一个客栈,它有两种情况,费用超过p、费用不超过p。 3、超过p的找之后相同颜色且费用不超过p的。 4、不超过p的与之后相同颜色的随意组合。 既然是批量处理,自然想到了前缀和。(处理3的时候用原创 2016-11-14 18:17:06 · 477 阅读 · 0 评论 -
NOIP2011铺地毯
NOIP2011铺地毯【题目分析】 水题,有送分的觉悟!不过在刚开始读题的时候有点慌,一时没读懂,看来心理素质还是不行啊,不够淡定。 其实就是简单的if else语句。【代码】#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>using namespace std;int main(){原创 2016-11-14 18:14:31 · 370 阅读 · 0 评论 -
NOIP2012复赛DAY1
NOIP2012——DAY11、Vigenère 密码【题目分析】 这就是一道找规律的题目,可别忘了将自己找出的规律多模拟几次,不然就有可能悲剧了。【代码】#include#includechar A[1005],a[1005],B[1005];int main(){ scanf("%s %s",a,B); int n=strlen(a),m=strlen(原创 2016-11-12 14:18:53 · 267 阅读 · 0 评论 -
NOIP2011复赛DAY1
NOIP2011复赛1、铺地毯水题,有送分的觉悟!不过在刚开始读题的时候有点慌,一时没读懂,看来心理素质还是不行啊,不够淡定。其实就是简单的if else语句。#define M 10005#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>using namespace std;struct no原创 2016-11-11 21:24:32 · 264 阅读 · 0 评论 -
SRM554 Div1Medium TheBrickTowerMediumDivOne
【分析】 这道题应该是一道yy题吧。 首先我们通过模拟,可以知道一个数最多对答案贡献2次,最少贡献0次。如果一个数很大,那我们只能将它放在最左边或最右边,那么这样他只能对答案贡献一次。 依据这个,我们可以设想,最终的序列可能是6 5 4 2 1 3 8 10这样的形式。 但是答案又有一个限制,字典序最小。 【代码】#include <bits/stdc++.h>using namespa原创 2017-04-24 19:02:21 · 291 阅读 · 0 评论