10.11 NOIP模拟题(1)
- /*
- 离散化
- 差分
- */
- #include<bits/stdc++.h>
- #define N 4000007
- using namespace std;
- int n,ans;
- int tmp[N],a[N],b[N],s[N];
- int main()
- {
- freopen("meizi.in","r",stdin);
- freopen("meizi.out","w",stdout);
- scanf("%d",&n);
- for(int i=;i<=n;i++)
- {
- scanf("%d%d",&a[i],&b[i]);
- tmp[(i<<)-]=a[i],tmp[i<<]=b[i];
- }
- int num=(n<<)+;
- sort(tmp+,tmp+num);
- for(int i=;i<=n;i++)
- {
- a[i]=lower_bound(tmp+,tmp+num,a[i])-tmp;
- b[i]=lower_bound(tmp+,tmp+num,b[i])-tmp;
- s[a[i]]++;s[b[i]+]--;
- }
- for(int i=;i<=num;i++) s[i]+=s[i-];
- for(int i=;i<=num;i++) ans=max(ans,s[i]);
- printf("%d\n",ans);
- return ;
- }
- /*
- 容斥原理 先保证每列满足
- 答案为 全部(每列满足) - 一行白(每列满足) + 两行白(每列满足)...
- ans=(-1)^k*C(n,k)*(2^(n-k)-1)^m
- 阶乘逆元组合数
- */
- #include<iostream>
- #include<cstdio>
- #include<cstring>
- #define N 200001
- #define M 1000000007
- #define ll long long
- using namespace std;
- ll fac[N]={,},inv[N]={,},f[N]={,};
- int n,m;
- ll ans;
- ll ksm(ll a,ll b)
- {
- ll res=;
- while(b)
- {
- if(b&) res=res*a%M;
- b>>=;a=a*a%M;
- }return res%M;
- }
- ll C(ll a,ll b)
- {
- return (fac[a]*inv[b]%M*inv[a-b]%M)%M;
- }
- int main()
- {
- freopen("matrix.in","r",stdin);
- freopen("matrix.out","w",stdout);
- for(int i=;i<N;i++)
- {
- fac[i]=fac[i-]*i%M;
- f[i]=(M-M/i)*f[M%i]%M;
- inv[i]=inv[i-]*f[i]%M;
- }
- scanf("%d%d",&n,&m);
- for(int k=;k<=n;k++)
- {
- if(k&)
- ans=(ans-C(n,k)%M*ksm(ksm(,n-k)-,m))%M;
- else
- ans=(ans+C(n,k)%M*ksm(ksm(,n-k)-,m))%M;
- }
- printf("%lld\n",(ans+M)%M);
- return ;
- }
- /*
- 和的期望即期望的和
- 55分暴力就行
- 线段树区间乘,加,求和
- */
- #include <iostream>
- #include <cstring>
- #include <cmath>
- #include <cstdio>
- #include <algorithm>
- #include <queue>
- #include <vector>
- #include <map>
- #include <complex>
- #define inf 0x3f3f3f3f
- #define eps 1e-10
- #define lc k << 1
- #define rc k << 1 | 1
- using namespace std;
- typedef long long ll;
- typedef pair<ll, int> P;
- ll p;
- double tmp[];
- struct node{
- double dat, tag1, tag2;
- int l, r;
- };
- struct seg{
- node d[];
- void pushup(int k){
- d[k].dat = d[lc].dat + d[rc].dat;
- }
- void build(int k, int l, int r){
- d[k].l = l; d[k].r = r; d[k].tag1 = ; d[k].tag2 = ;
- if(l == r){
- d[k].dat = tmp[l];
- return;
- }
- int mid = (l + r) >> ;
- build(lc, l, mid);
- build(rc, mid + , r);
- pushup(k);
- }
- void add(int k, double x){
- double len = d[k].r - d[k].l + ;
- d[k].dat = (d[k].dat + x * len);
- d[k].tag1 = (d[k].tag1 + x);
- }
- void mul(int k, double x){
- d[k].dat = d[k].dat * x;
- d[k].tag1 = d[k].tag1 * x;
- d[k].tag2 = d[k].tag2 * x;
- }
- void pushdown(int k){
- if(fabs(d[k].tag2 - ) > eps){
- mul(lc, d[k].tag2);
- mul(rc, d[k].tag2);
- d[k].tag2 = ;
- }
- if(fabs(d[k].tag1) > eps){
- add(lc, d[k].tag1);
- add(rc, d[k].tag1);
- d[k].tag1 = ;
- }
- }
- void add(int k, int l, int r, double x){
- if(l <= d[k].l && d[k].r <= r){
- add(k, x); return;
- }
- pushdown(k);
- int mid = (d[k].l + d[k].r) >> ;
- if(l <= mid) add(lc, l, r, x);
- if(r > mid) add(rc, l, r, x);
- pushup(k);
- }
- void mul(int k, int l, int r, double x){
- if(l <= d[k].l && d[k].r <= r){
- mul(k, x); return;
- }
- pushdown(k);
- int mid = (d[k].l + d[k].r) >> ;
- if(l <= mid) mul(lc, l, r, x);
- if(r > mid) mul(rc, l, r, x);
- pushup(k);
- }
- double query(int k, int l, int r){
- if(l <= d[k].l && d[k].r <= r){
- return d[k].dat;
- }
- pushdown(k); double sum = ;
- int mid = (d[k].l + d[k].r) >> ;
- if(l <= mid) sum = (sum + query(lc, l, r));
- if(r > mid) sum = (sum + query(rc, l, r));
- return sum;
- }
- }Seg;
- int n, m;
- int main(){
- freopen("random.in", "r", stdin);
- freopen("random.out", "w", stdout);
- scanf("%d%d", &n, &m);
- for(int i = ; i <= n; i ++) scanf("%lf", &tmp[i]);
- Seg.build(, , n);
- while(m--){
- int opt, l1, r1, l2, r2; ll x;
- scanf("%d", &opt);
- if(opt == ){
- scanf("%d%d%d%d", &l1, &r1, &l2, &r2);
- double d1 = Seg.query(, l1, r1);
- double d2 = Seg.query(, l2, r2);
- Seg.mul(, l1, r1, double(r1 - l1) / double(r1 - l1 + ));
- Seg.mul(, l2, r2, double(r2 - l2) / double(r2 - l2 + ));
- Seg.add(, l1, r1, d2 / double(r1 - l1 + ) / double(r2 - l2 + ));
- Seg.add(, l2, r2, d1 / double(r2 - l2 + ) / double(r1 - l1 + ));
- }
- if(opt == ){
- scanf("%d%d", &l1, &r1);
- printf("%.8lf\n", Seg.query(, l1, r1));
- }
- }
- return ;
- }
10.11 NOIP模拟题(1)的更多相关文章
- 10.11 noip模拟试题
4题均为128M,1s 1. 锻炼计划(exercise.pas) 身体是革命的本钱,OIers不要因为紧张的学习和整天在电脑前而忽视了健康问题.小x设计了自己的锻炼计划,但他不知道这个计划是否可行, ...
- 10.17 NOIP模拟赛
目录 2018.10.17 NOIP模拟赛 A 咒语curse B 神光light(二分 DP) C 迷宫maze(次短路) 考试代码 B 2018.10.17 NOIP模拟赛 时间:1h15min( ...
- NOIP模拟题汇总(加厚版)
\(NOIP\)模拟题汇总(加厚版) T1 string 描述 有一个仅由 '0' 和 '1' 组成的字符串 \(A\),可以对其执行下列两个操作: 删除 \(A\)中的第一个字符: 若 \(A\)中 ...
- 8.22 NOIP 模拟题
8.22 NOIP 模拟题 编译命令 g++ -o * *.cpp gcc -o * *.c fpc *.pas 编译器版本 g++/gcc fpc 评测环境 位 Linux, .3GHZ CPU ...
- 10.16 NOIP模拟赛
目录 2018.10.16 NOIP模拟赛 A 购物shop B 期望exp(DP 期望 按位计算) C 魔法迷宫maze(状压 暴力) 考试代码 C 2018.10.16 NOIP模拟赛 时间:2h ...
- 【入门OJ】2003: [Noip模拟题]寻找羔羊
这里可以复制样例: 样例输入: agnusbgnus 样例输出: 6 这里是链接:[入门OJ]2003: [Noip模拟题]寻找羔羊 这里是题解: 题目是求子串个数,且要求简单去重. 对于一个例子(a ...
- 9.9 NOIP模拟题
9.9 NOIP模拟题 T1 两个圆的面积求并 /* 计算圆的面积并 多个圆要用辛普森积分解决 这里只有两个,模拟计算就好 两圆相交时,面积并等于中间两个扇形面积减去两个三角形面积 余弦定理求角度,算 ...
- NOIP模拟题17.9.26
B 君的任务(task)[题目描述]与君初相识,犹如故人归.B 君看到了Z 君的第一题,觉得很难.于是自己出了一个简单题.你需要完成n 个任务,第i 任务有2 个属性ai; bi.其中ai 是完成这个 ...
- noip模拟题题解集
最近做模拟题看到一些好的题及题解. 升格思想: 核电站问题 一个核电站有N个放核物质的坑,坑排列在一条直线上.如果连续M个坑中放入核物质,则会发生爆炸,于是,在某些坑中可能不放核物质. 任务:对于给定 ...
随机推荐
- JPA的一些坑
推荐一篇比较好的介绍JPA的文章:使用 Spring Data JPA 简化 JPA 开发 JPA坑1:不支持Limit查询 JPA是不支持Limit分页查询,而我们有时又因为某些原因不想用JPA提供 ...
- CF676E:The Last Fight Between Human and AI
人类和电脑在一个多项式上进行博弈,多项式的最高次项已知,一开始系数都不确定.电脑先开始操作,每次操作可以确定某次项的系数,这个系数可以是任意实数.给出一个博弈中间状态,最后如果这个多项式被x-K整除就 ...
- Linux下汇编语言学习笔记66 ---
这是17年暑假学习Linux汇编语言的笔记记录,参考书目为清华大学出版社 Jeff Duntemann著 梁晓辉译<汇编语言基于Linux环境>的书,喜欢看原版书的同学可以看<Ass ...
- __asm
来源:http://msdn.microsoft.com/zh-cn/library/45yd4tzz.aspx Microsoft 专用 __asm 关键字调用一个内联汇编,并且可以显示,每当 c. ...
- SQL SERVER 2012 第三章 T-SQL 基本SELECT语句用法,Where子句详细用法
select [all|distinct] [top (<expression>) [Percent] [with ties]] <column list> [from < ...
- iframe显示滚动条
子页面通过iframe加载,出现了竖向滚动条 最后查出原因:文档申明 iframe有滚动条的页面的文档申明 <!DOCTYPE html> 改成如下就行了 <!DOCTYPE HTM ...
- 我的arcgis培训照片14
来自:http://www.cioiot.com/successview-562-1.html
- bootstrap模态框出现或者消失的回调函数
当某一模态框出现的时候就触发函数: $(".modal").on('show.bs.modal',function(){ if(vueObj){...}else{//如果vue对象 ...
- Java集合类汇总记录--JDK篇
接口类图 Java Collection由两套并行的接口组成,一套是Collection接口,一套是Map接口.例如以下图 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkb ...
- 【跟我一步一步学Struts2】——登陆样例
本篇博客通过一个简单的登陆小样例来入门,简单了解一下struts2是怎样工作的: 第一步引入Jar包: commons-fileupload-1.2.1.jar,文件上传 commons-loggin ...