NOIP 2012 Day2
tags:
- 扩展欧几里得
- 二分答案
- 查分
- 倍增
- 二分答案
- 贪心
- NOIP
categories: - 信息学竞赛
- 总结
同余方程
Solution
首先同余式可以转化为等式.
\]
根据扩展欧几里得定理, 对于式
#### Code
```c++
#include<cstdio>
void exgcd(int a,int b,int &x,int &y){
if(!b){
x=1,y=0;return ;
}
exgcd(b,a%b,y,x);
y-=x*(a/b);
}
int main(){
int a,b,x,y;
scanf("%d%d",&a,&b);
exgcd(a,b,x,y);
printf("%d",(x%b+b)%b);
return 0;
}
```
### 借教室
#### Solution
可以发现近些年 NOIP 总是出**二分答案**的题.
其实就是给出一些操作, 每次对一定区间减去一个数, 求在哪次操作之后产生了负数.然而可以用线段树强行做, 也可以用一些巧妙一点的办法.
- 线段树, 只需要有**区间加操作**和查询**区间最小值**操作, 一般线段树可以拿到95分, 还可以用可以各种**卡常技巧**, **zkw线段树**或者是**标记永久化**来加快.
- 二分一个值$\text{T}$, 表示前$\text{T}$次借教室后会不会出现不合法情况(*即某天教室只剩下负数间*), 然后用**差分**借完$T$次教室后每一天剩下的教室数.这个一般情况是不会被卡的.**注意对于答案的记录.**
#### Code
```c++
#include<cstring>
#include<cstdio>
#define N 1000055
#define inf 0x3f3f3f3f
#define int long long
struct Node{
int l,r,s;
void init(){scanf("%lld%lld%lld",&s,&l,&r);}
}s[N];
int n,m,d[N];
int qi[N];
int ans;
int min(int a,int b){
return a<b?a:b;
}
bool check(int tim){
qi[0]=0;
for(int i=1;i<=n;++i)
qi[i]=d[i]-d[i-1];
for(int i=1;i<=tim;++i)
qi[s[i].l]-=s[i].s,qi[s[i].r+1]+=s[i].s;
int he=0;
for(int i=1;i<=n+1;++i){he+=qi[i];if(he<0){ans=min(ans,tim);return false;}}
return true;
}
main(){
ans=inf;
scanf("%lld%lld",&n,&m);
for(int i=1;i<=n;++i)
scanf("%lld",&d[i]);
for(int i=1;i<=m;++i)
s[i].init();
int l=1,r=m,mid;
while(l<=r){
mid=(l+r)>>1;
if(!check(mid))
r=mid-1;
else l=mid+1;
}
if(l>=m)
printf("0");
else printf("-1\n%lld",ans);
return 0;
}
```
### 疫情控制
并不是很明白为什么一天会出两道二分答案的题目...
首先二分一个值$\text{T}$, 表示在$\text{T}$时刻内能封锁这棵树
还是有一个很重要的贪心策略, 就是一个点在到达根节点之前总是越往上走越好.然后根据**倍增**确定出每个点在给定时间$\text{T}$所到达的最高点(*根节点为终点*). 必然有一些点到达不了根节点, 那么就让它来控制这个点; 必然有在不同时间到达根节点的点, 这些点可以去控制根节点的不同没被控制的子树; 所以最后找出所有**没有被控制的树点**和**能到达根节点的军队**进行贪心即可.
细节太多了, 很讨厌呐.\]
NOIP 2012 Day2的更多相关文章
- noip 2012 Day2 T2 借教室
一.暴力简述 甩链接.jpeg 首先我们不难看出,这道题————并不是一道多难的题,因为显然,第一眼看题目时便很容易地想到暴力如何打:枚举每一种订单,然后针对每一种订单,对区间内的每一天进行修改(做减 ...
- NOIp 2012 #2 借教室 Label:区间修改线段树
题目描述 在大学期间,经常需要租借教室.大到院系举办活动,小到学习小组自习讨论,都需要向学校申请借教室.教室的大小功能不同,借教室人的身份不同,借教室的手续也不一样. 面对海量租借教室的信息,我们自然 ...
- NOIp 2012 #1 Vigenère 密码 Label:模拟
题目描述 16 世纪法国外交家 Blaise de Vigenère 设计了一种多表密码加密算法――Vigenère 密 码.Vigenère 密码的加密解密算法简单易用,且破译难度比较高,曾在美国南 ...
- NOIP 2012 Day2T2 借教室题解
NOIP 2012 Day2T2 借教室题解 题目传送门:http://codevs.cn/problem/1217/ 题目描述 Description 在大学期间,经常需要租借教室.大到院系举办活动 ...
- NOIP 2012 T5 借教室 [洛谷P1083]
题目描述 在大学期间,经常需要租借教室.大到院系举办活动,小到学习小组自习讨论,都需要 向学校申请借教室.教室的大小功能不同,借教室人的身份不同,借教室的手续也不一样. 面对海量租借教室的信息,我们自 ...
- 【NOIP 2012 疫情控制】***
题目描述 H 国有 n 个城市,这 n 个城市用 n-1 条双向道路相互连通构成一棵树,1 号城市是首都, 也是树中的根节点. H 国的首都爆发了一种危害性极高的传染病.当局为了控制疫情,不让疫情扩散 ...
- 【NOIP 2012 开车旅行】***
题目描述 小 A 和小 B 决定利用假期外出旅行,他们将想去的城市从 1 到 N 编号,且编号较小的 城市在编号较大的城市的西边,已知各个城市的海拔高度互不相同,记城市 i 的海拔高度为 Hi,城市 ...
- 【NOIP 2012 国王游戏】 贪心+高精度
题目描述 恰逢 H 国国庆,国王邀请 n 位大臣来玩一个有奖游戏.首先,他让每个大臣在左.右 手上面分别写下一个整数,国王自己也在左.右手上各写一个整数.然后,让这 n 位大臣排 成一排,国王站在队伍 ...
- NOIP 2012 Vigenère 密码
洛谷 P1079 Vigenère 密码 https://www.luogu.org/problemnew/show/P1079 JDOJ 1779: [NOIP2012]Vigenèr密码 D1 T ...
随机推荐
- [TJOI2013]最长上升子序列 平衡树
其实是一道性质题. 首先观察到插入的数是递增的, 那么根据上升子序列的性质, 我们的非法情况就是统计到了在一个数前面的后插入的数, 但是由于插入的数是递增的,显然插入这个数后,这个数就是最大的,所以除 ...
- POJ3243:Clever Y——题解
http://poj.org/problem?id=3243 求最小的非负整数y满足x^y=k(mod z) 写完板子之后等待了半个小时poj才终于进入…… poj不行啊.jpg 以前一直觉得BSGS ...
- Poco::Path 和 DirectoryIterator
#include<iostream>#include<typeinfo>#include<Poco/Path.h>using namespace std;using ...
- 淘淘搜索结果中image属性中有多张图片的处理
solr引擎查询某一个 商品后的结果中,image字段中如果有多张图片路径(用逗号隔开)时,前台会不 显示图片,解决方法如下: package com.taotao.portal.pojo; publ ...
- HDU 5646
DZY Loves Partition Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Ot ...
- js的数据类型--数字
近期做一些项目的时候发现,自己的js基础还是不够扎实,再看一遍犀牛书,加深自己的理解和印象.所以从这篇文章开始,后面都是关于原生js的一些内容. 这篇文章,我们具体介绍一下js的数据类型其中一种. j ...
- IIS---HTTP 错误 500.19 - Internal Server Error 的解决方法
在验证IIS是否安装成功,测试了一个页面,报500.19错误 感谢:http://www.cnblogs.com/imjustice/archive/2011/04/04/2198116.html 图 ...
- [干货,阅后进BAT不是梦]面试心得与总结---BAT、网易、蘑菇街
本文转载自:公众号:JANiubility 前言 之前实习的时候就想着写一篇面经,后来忙就给忘了,现在找完工作了,也是该静下心总结一下走过的路程了,我全盘托出,奉上这篇诚意之作,希望能给未来找工作的人 ...
- Perl6 Bailador框架(1):开始
use v6; use Bailador; get '/' => sub { '<h1><center>Hello, World</center></h ...
- Low overhead memory space management
Methods, apparatus, and systems, including computer programs encoded on a computer storage medium, m ...