noip 2012 提高组 day2 部分题解
这道题有多种解法,我用的是扩展欧几里得算法求到的答案
#include<iostream>
#include<fstream>
#include<cstdio>
using namespace std;
typedef long long ll;
ifstream fin("mod.in");
FILE *fout = fopen("mod.out","w");
void gcd(ll a,ll b,ll& x,ll& y){
if(!b){ x = , y = ; }
else{ gcd(b, a%b, y, x); y -= x * (a / b); }
}
ll a1,b1;
ll x1 = ,y1 = ;
int main(){
fin>>a1>>b1;
gcd(a1, b1, x1, y1);
fprintf(fout,"%ld",(x1 + b1 * )%b1);
return ;
}
这道题把第i个人看做一个有序的序列(1、2、3、4....)然后二分
至于求和,就像这么处理:
、
接着从前面开始求和。。。
就像这样可以求出每一天的教室使用量,如果1 ~ v天中有哪一天不够用了,就在前半段
查找,如果都足够,就向后面查找,每次不够的时候更新结果result
#include<iostream>
#include<fstream>
#include<cstdio>
#include<cctype>
#include<cstring>
using namespace std;
typedef bool boolean;
FILE *fout = fopen("classroom.out","w");
template <class T>
inline void get(T &u){
char x;
while(!isdigit(x=getchar()));
for( u=x-; isdigit(x=getchar()); u*=,u+=(x-));
ungetc(x,stdin);
}
int *d;
int *s;
int *t;
int *r;
int *buf;
int m,n;
boolean solve(int v){
memset(buf, , sizeof(int) * (n + ));
int sum = ;
int limit = ;
for(int i = ;i <= v;i++){
buf[s[i]] += d[i];
buf[t[i] + ] -= d[i];
limit = max(limit, t[i]);
}
for(int i = ;i <= limit;i++){
sum += buf[i];
if(sum > r[i]) return true;
}
return false;
}
int main(){
freopen("classroom.in","r",stdin);
get(n);
get(m);
r = new int[(const int)(n + )];
d = new int[(const int)(m + )];
s = new int[(const int)(m + )];
t = new int[(const int)(m + )];
buf = new int[(const int)(n + )];
for(int i = ;i <= n;i++) get(r[i]);
for(int i = ;i <= m;i++){
get(d[i]);
get(s[i]);
get(t[i]);
}
int from = ;
int end = m;
int result = ;
while(from <= end){
int mid = (from + end) >> ;
if(solve(mid)){
result = mid;
end = mid - ;
}else from = mid + ;
}
if(!result) fprintf(fout,"0\n");
else fprintf(fout,"-1\n%d\n",result);
return ;
}
noip 2012 提高组 day2 部分题解的更多相关文章
- noip 2013 提高组 Day2 部分题解
积木大赛: 之前没有仔细地想,然后就直接暴力一点(骗点分),去扫每一高度,连到一起的个数,于是2组超时 先把暴力程序贴上来(可以当对拍机) #include<iostream> #incl ...
- NOIP 2015 提高组 Day2
期望得分:100+10+60=170 实际得分:100+10+35=145 http://www.cogs.pro/cogs/page/page.php?aid=16 T1 跳石头 时间限制:1 s ...
- NOIP 2013 提高组 day2 积木大赛
积木大赛 描述 春春幼儿园举办了一年一度的“积木大赛”.今年比赛的内容是搭建一座宽度为 n 的大厦,大厦可以看成由 n 块宽度为1的积木组成,第
- Vigenère 密码NOIP 2012 提高组 第一天 第一题
题目描述 16 世纪法国外交家 Blaise de Vigenère 设计了一种多表密码加密算法――Vigenère 密 码.Vigenère 密码的加密解密算法简单易用,且破译难度比较高,曾在美国南 ...
- NOIP 2014 提高组 Day2
期望得分:100+60+30=190 实际得分:70+60+30=160 https://www.luogu.org/problem/lists?name=&orderitem=pid& ...
- NOIP 2008提高组第三题题解by rLq
啊啊啊啊啊啊今天已经星期三了吗 那么,来一波题解吧 本题地址http://www.luogu.org/problem/show?pid=1006 传纸条 题目描述 小渊和小轩是好朋友也是同班同学,他们 ...
- NOIP 2014 提高组 题解
NOIP 2014 提高组 题解 No 1. 生活大爆炸版石头剪刀布 http://www.luogu.org/problem/show?pid=1328 这是道大水题,我都在想怎么会有人错了,没算法 ...
- NOIP 2001 提高组 题解
NOIP 2001 提高组 题解 No 1. 一元三次方程求解 https://vijos.org/p/1116 看见有人认真推导了求解公式,然后猥琐暴力过的同学们在一边偷笑~~~ 数据小 暴力枚举即 ...
- noip 2014 提高组初赛
noip 2014 提高组初赛 一. TCP协议属于哪一层协议( ) A. 应用层 B. 传输层 C. 网络层 D. 数据链路层 B TCP(传输控制协议) 若有变量int a; float: x, ...
随机推荐
- CCCC训练赛一些模板 struct sstream
重载与构造 struct node { friend bool operator< (node n1, node n2) { return n1.priority > n2.priorit ...
- 疯狂java讲义 第三版 笔记
java7新加特性: 0B010101 二进制数 int c=0B0111_1111; 数值中使用下划线分隔 switch 支持String类型 字符串常量放在常量池 String s0 ...
- Mybatis插入数据后返回主键id
有时候使用mybatis插入数据后,需要用到记录在数据库中的自增id,可以利用keyProperty来返回,赋值给实体类中的指定字段. 单条记录插入并返回 First, if your databas ...
- Java中的反射机制(一)
基本概念 在Java运行时环境中,对于任意一个类,能否知道这个类有哪些属性和方法?对于任意一个对象,能否调用它的任意一个方法? 答案是肯定的. 这种动态获取类的信息以及动态调用对象的方法的功能来自于J ...
- 【F12】Console命令,让js调试更简单
Console命令,让js调试更简单 一.显示信息的命令 console.log("normal"); // 用于输出普通信息 console.info("informa ...
- 【Python】【亲测好用】安装第三方包报错:AttributeError:'module' object has no attribute 'main'
安装/卸载第三包可能出现如下问题及相应解决办法: 在pycharm编辑中,使用anconda2更新.卸载第三方包时,出现如下错误: AttributeError:'module' object has ...
- java-JProfiler(五)-监控性能
原文地址:http://blog.csdn.net/chendc201/article/details/22897999 一.基础认识 1. 在Live Memory视图里右击相关类,选中Mark C ...
- jquery两稳定版本比较~~
jquery历经了多个版本的更新,版本上的比较貌似没什么必要性,一般来说新的版本会比旧的版本各方面都略有提升,但由于新版中增加了各种新的功能,难免会引起bug的发生.评估一个版本是否适合当前开发场景使 ...
- JS参差不齐的数组
<html><head> <title>参差不齐的数组</title> <meta charset="utf-8"> & ...
- Makefile小结
Makefile最基本的规则:target....:prerequisites..... command 或:target....:prerequisites.....;command target: ...