这道题有多种解法,我用的是扩展欧几里得算法求到的答案

 #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 部分题解的更多相关文章

  1. noip 2013 提高组 Day2 部分题解

    积木大赛: 之前没有仔细地想,然后就直接暴力一点(骗点分),去扫每一高度,连到一起的个数,于是2组超时 先把暴力程序贴上来(可以当对拍机) #include<iostream> #incl ...

  2. NOIP 2015 提高组 Day2

    期望得分:100+10+60=170 实际得分:100+10+35=145 http://www.cogs.pro/cogs/page/page.php?aid=16 T1 跳石头 时间限制:1 s  ...

  3. NOIP 2013 提高组 day2 积木大赛

      积木大赛 描述 春春幼儿园举办了一年一度的“积木大赛”.今年比赛的内容是搭建一座宽度为 n 的大厦,大厦可以看成由 n 块宽度为1的积木组成,第

  4. Vigenère 密码NOIP 2012 提高组 第一天 第一题

    题目描述 16 世纪法国外交家 Blaise de Vigenère 设计了一种多表密码加密算法――Vigenère 密 码.Vigenère 密码的加密解密算法简单易用,且破译难度比较高,曾在美国南 ...

  5. NOIP 2014 提高组 Day2

    期望得分:100+60+30=190 实际得分:70+60+30=160 https://www.luogu.org/problem/lists?name=&orderitem=pid& ...

  6. NOIP 2008提高组第三题题解by rLq

    啊啊啊啊啊啊今天已经星期三了吗 那么,来一波题解吧 本题地址http://www.luogu.org/problem/show?pid=1006 传纸条 题目描述 小渊和小轩是好朋友也是同班同学,他们 ...

  7. NOIP 2014 提高组 题解

    NOIP 2014 提高组 题解 No 1. 生活大爆炸版石头剪刀布 http://www.luogu.org/problem/show?pid=1328 这是道大水题,我都在想怎么会有人错了,没算法 ...

  8. NOIP 2001 提高组 题解

    NOIP 2001 提高组 题解 No 1. 一元三次方程求解 https://vijos.org/p/1116 看见有人认真推导了求解公式,然后猥琐暴力过的同学们在一边偷笑~~~ 数据小 暴力枚举即 ...

  9. noip 2014 提高组初赛

    noip 2014 提高组初赛 一. TCP协议属于哪一层协议( ) A. 应用层 B. 传输层 C. 网络层 D. 数据链路层 B TCP(传输控制协议) 若有变量int a; float: x, ...

随机推荐

  1. MongoDB-3.4安装文档

    1.建立目录 2.将解压文件cp到步骤1建立目录下 mongodb-win32-x86_64-enterprise-windows-64-3.4.1.zip 3.配置环境变量 4.启动mongodb服 ...

  2. Oracle安装部署之 oracle 11g install linux

    #!/bin/bash#Purpose:Create and config oracle install.#Usage:Log on as the superuser('root') #1.creat ...

  3. PowerSploit: The Easiest Shell You'll Ever Get - Pentest Geek - Penetration Testing - Infosec Professionals

                    PowerSploit: The Easiest Shell You'll Ever Get - Pentest... Sometimes you just want ...

  4. 棋盘问题---poj1321(dfs)

    http://poj.org/problem?id=1321 由于搜索是原来写的,而集训的时候没来所以只能现在补补咯-_- 简单的深搜 #include<stdio.h> #include ...

  5. 2015 湘潭大学程序设计比赛(Internet)--G题-人生成就

    人生成就 Accepted : 54   Submit : 104 Time Limit : 10000 MS   Memory Limit : 65536 KB 题目描述 人生就像一个n*n的矩阵, ...

  6. 图片预览-兼容IE

    直接贴代码吧: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www ...

  7. [py]python的继承体系-源码目录结构

    python3安装目录 pip install virtualenv pip install virtualenvwrapper pip install virtualenvwrapper-win m ...

  8. soapUI-Conditional Goto

    1.1.1  Conditional Goto 1.1.1.1 概述 - Conditional Goto Conditional Goto TestStep包含任意数量的XPath/JSONPath ...

  9. http协议基础(十)实体首部字段

    1.定义 包含在请求和响应中的实体部分所使用的首部,用于补充内容的更新时间等与实体相关的信息 2.Allow 通知客户端能够支持的Request-URI指定资源的所有http方法:如果服务器接收到不支 ...

  10. Summary: Class Variable vs. Instance Variable && Class Method

    这里列举的是一些我平时碰到的一些Java Grammar,日积月累. Class Variable vs Instance Variable: Instance variables Instance ...