1. /*
  2. 离散化
  3. 差分
  4. */
  5. #include<bits/stdc++.h>
  6.  
  7. #define N 4000007
  8.  
  9. using namespace std;
  10. int n,ans;
  11. int tmp[N],a[N],b[N],s[N];
  12.  
  13. int main()
  14. {
  15. freopen("meizi.in","r",stdin);
  16. freopen("meizi.out","w",stdout);
  17. scanf("%d",&n);
  18. for(int i=;i<=n;i++)
  19. {
  20. scanf("%d%d",&a[i],&b[i]);
  21. tmp[(i<<)-]=a[i],tmp[i<<]=b[i];
  22. }
  23. int num=(n<<)+;
  24. sort(tmp+,tmp+num);
  25. for(int i=;i<=n;i++)
  26. {
  27. a[i]=lower_bound(tmp+,tmp+num,a[i])-tmp;
  28. b[i]=lower_bound(tmp+,tmp+num,b[i])-tmp;
  29. s[a[i]]++;s[b[i]+]--;
  30. }
  31. for(int i=;i<=num;i++) s[i]+=s[i-];
  32. for(int i=;i<=num;i++) ans=max(ans,s[i]);
  33. printf("%d\n",ans);
  34. return ;
  35. }

  1. /*
  2. 容斥原理 先保证每列满足
  3. 答案为 全部(每列满足) - 一行白(每列满足) + 两行白(每列满足)...
  4. ans=(-1)^k*C(n,k)*(2^(n-k)-1)^m
  5. 阶乘逆元组合数
  6. */
  7. #include<iostream>
  8. #include<cstdio>
  9. #include<cstring>
  10.  
  11. #define N 200001
  12. #define M 1000000007
  13. #define ll long long
  14.  
  15. using namespace std;
  16. ll fac[N]={,},inv[N]={,},f[N]={,};
  17. int n,m;
  18. ll ans;
  19.  
  20. ll ksm(ll a,ll b)
  21. {
  22. ll res=;
  23. while(b)
  24. {
  25. if(b&) res=res*a%M;
  26. b>>=;a=a*a%M;
  27. }return res%M;
  28. }
  29.  
  30. ll C(ll a,ll b)
  31. {
  32. return (fac[a]*inv[b]%M*inv[a-b]%M)%M;
  33. }
  34.  
  35. int main()
  36. {
  37. freopen("matrix.in","r",stdin);
  38. freopen("matrix.out","w",stdout);
  39. for(int i=;i<N;i++)
  40. {
  41. fac[i]=fac[i-]*i%M;
  42. f[i]=(M-M/i)*f[M%i]%M;
  43. inv[i]=inv[i-]*f[i]%M;
  44. }
  45.  
  46. scanf("%d%d",&n,&m);
  47. for(int k=;k<=n;k++)
  48. {
  49. if(k&)
  50. ans=(ans-C(n,k)%M*ksm(ksm(,n-k)-,m))%M;
  51. else
  52. ans=(ans+C(n,k)%M*ksm(ksm(,n-k)-,m))%M;
  53. }
  54. printf("%lld\n",(ans+M)%M);
  55. return ;
  56. }

  1. /*
  2. 和的期望即期望的和
  3. 55分暴力就行
  4.  
  5. 线段树区间乘,加,求和
  6. */
  7. #include <iostream>
  8. #include <cstring>
  9. #include <cmath>
  10. #include <cstdio>
  11. #include <algorithm>
  12. #include <queue>
  13. #include <vector>
  14. #include <map>
  15. #include <complex>
  16.  
  17. #define inf 0x3f3f3f3f
  18. #define eps 1e-10
  19.  
  20. #define lc k << 1
  21. #define rc k << 1 | 1
  22.  
  23. using namespace std;
  24.  
  25. typedef long long ll;
  26. typedef pair<ll, int> P;
  27. ll p;
  28. double tmp[];
  29.  
  30. struct node{
  31. double dat, tag1, tag2;
  32. int l, r;
  33. };
  34.  
  35. struct seg{
  36. node d[];
  37.  
  38. void pushup(int k){
  39. d[k].dat = d[lc].dat + d[rc].dat;
  40. }
  41.  
  42. void build(int k, int l, int r){
  43. d[k].l = l; d[k].r = r; d[k].tag1 = ; d[k].tag2 = ;
  44. if(l == r){
  45. d[k].dat = tmp[l];
  46. return;
  47. }
  48. int mid = (l + r) >> ;
  49. build(lc, l, mid);
  50. build(rc, mid + , r);
  51. pushup(k);
  52. }
  53.  
  54. void add(int k, double x){
  55. double len = d[k].r - d[k].l + ;
  56. d[k].dat = (d[k].dat + x * len);
  57. d[k].tag1 = (d[k].tag1 + x);
  58. }
  59.  
  60. void mul(int k, double x){
  61. d[k].dat = d[k].dat * x;
  62. d[k].tag1 = d[k].tag1 * x;
  63. d[k].tag2 = d[k].tag2 * x;
  64. }
  65.  
  66. void pushdown(int k){
  67. if(fabs(d[k].tag2 - ) > eps){
  68. mul(lc, d[k].tag2);
  69. mul(rc, d[k].tag2);
  70. d[k].tag2 = ;
  71. }
  72. if(fabs(d[k].tag1) > eps){
  73. add(lc, d[k].tag1);
  74. add(rc, d[k].tag1);
  75. d[k].tag1 = ;
  76. }
  77. }
  78.  
  79. void add(int k, int l, int r, double x){
  80. if(l <= d[k].l && d[k].r <= r){
  81. add(k, x); return;
  82. }
  83. pushdown(k);
  84. int mid = (d[k].l + d[k].r) >> ;
  85. if(l <= mid) add(lc, l, r, x);
  86. if(r > mid) add(rc, l, r, x);
  87. pushup(k);
  88. }
  89.  
  90. void mul(int k, int l, int r, double x){
  91. if(l <= d[k].l && d[k].r <= r){
  92. mul(k, x); return;
  93. }
  94. pushdown(k);
  95. int mid = (d[k].l + d[k].r) >> ;
  96. if(l <= mid) mul(lc, l, r, x);
  97. if(r > mid) mul(rc, l, r, x);
  98. pushup(k);
  99. }
  100.  
  101. double query(int k, int l, int r){
  102. if(l <= d[k].l && d[k].r <= r){
  103. return d[k].dat;
  104. }
  105. pushdown(k); double sum = ;
  106. int mid = (d[k].l + d[k].r) >> ;
  107. if(l <= mid) sum = (sum + query(lc, l, r));
  108. if(r > mid) sum = (sum + query(rc, l, r));
  109. return sum;
  110. }
  111.  
  112. }Seg;
  113.  
  114. int n, m;
  115.  
  116. int main(){
  117.  
  118. freopen("random.in", "r", stdin);
  119. freopen("random.out", "w", stdout);
  120. scanf("%d%d", &n, &m);
  121. for(int i = ; i <= n; i ++) scanf("%lf", &tmp[i]);
  122. Seg.build(, , n);
  123. while(m--){
  124. int opt, l1, r1, l2, r2; ll x;
  125. scanf("%d", &opt);
  126. if(opt == ){
  127. scanf("%d%d%d%d", &l1, &r1, &l2, &r2);
  128. double d1 = Seg.query(, l1, r1);
  129. double d2 = Seg.query(, l2, r2);
  130. Seg.mul(, l1, r1, double(r1 - l1) / double(r1 - l1 + ));
  131. Seg.mul(, l2, r2, double(r2 - l2) / double(r2 - l2 + ));
  132. Seg.add(, l1, r1, d2 / double(r1 - l1 + ) / double(r2 - l2 + ));
  133. Seg.add(, l2, r2, d1 / double(r2 - l2 + ) / double(r1 - l1 + ));
  134. }
  135. if(opt == ){
  136. scanf("%d%d", &l1, &r1);
  137. printf("%.8lf\n", Seg.query(, l1, r1));
  138. }
  139. }
  140. return ;
  141. }

10.11 NOIP模拟题(1)的更多相关文章

  1. 10.11 noip模拟试题

    4题均为128M,1s 1. 锻炼计划(exercise.pas) 身体是革命的本钱,OIers不要因为紧张的学习和整天在电脑前而忽视了健康问题.小x设计了自己的锻炼计划,但他不知道这个计划是否可行, ...

  2. 10.17 NOIP模拟赛

    目录 2018.10.17 NOIP模拟赛 A 咒语curse B 神光light(二分 DP) C 迷宫maze(次短路) 考试代码 B 2018.10.17 NOIP模拟赛 时间:1h15min( ...

  3. NOIP模拟题汇总(加厚版)

    \(NOIP\)模拟题汇总(加厚版) T1 string 描述 有一个仅由 '0' 和 '1' 组成的字符串 \(A\),可以对其执行下列两个操作: 删除 \(A\)中的第一个字符: 若 \(A\)中 ...

  4. 8.22 NOIP 模拟题

      8.22 NOIP 模拟题 编译命令 g++ -o * *.cpp gcc -o * *.c fpc *.pas 编译器版本 g++/gcc fpc 评测环境 位 Linux, .3GHZ CPU ...

  5. 10.16 NOIP模拟赛

    目录 2018.10.16 NOIP模拟赛 A 购物shop B 期望exp(DP 期望 按位计算) C 魔法迷宫maze(状压 暴力) 考试代码 C 2018.10.16 NOIP模拟赛 时间:2h ...

  6. 【入门OJ】2003: [Noip模拟题]寻找羔羊

    这里可以复制样例: 样例输入: agnusbgnus 样例输出: 6 这里是链接:[入门OJ]2003: [Noip模拟题]寻找羔羊 这里是题解: 题目是求子串个数,且要求简单去重. 对于一个例子(a ...

  7. 9.9 NOIP模拟题

    9.9 NOIP模拟题 T1 两个圆的面积求并 /* 计算圆的面积并 多个圆要用辛普森积分解决 这里只有两个,模拟计算就好 两圆相交时,面积并等于中间两个扇形面积减去两个三角形面积 余弦定理求角度,算 ...

  8. NOIP模拟题17.9.26

    B 君的任务(task)[题目描述]与君初相识,犹如故人归.B 君看到了Z 君的第一题,觉得很难.于是自己出了一个简单题.你需要完成n 个任务,第i 任务有2 个属性ai; bi.其中ai 是完成这个 ...

  9. noip模拟题题解集

    最近做模拟题看到一些好的题及题解. 升格思想: 核电站问题 一个核电站有N个放核物质的坑,坑排列在一条直线上.如果连续M个坑中放入核物质,则会发生爆炸,于是,在某些坑中可能不放核物质. 任务:对于给定 ...

随机推荐

  1. JPA的一些坑

    推荐一篇比较好的介绍JPA的文章:使用 Spring Data JPA 简化 JPA 开发 JPA坑1:不支持Limit查询 JPA是不支持Limit分页查询,而我们有时又因为某些原因不想用JPA提供 ...

  2. CF676E:The Last Fight Between Human and AI

    人类和电脑在一个多项式上进行博弈,多项式的最高次项已知,一开始系数都不确定.电脑先开始操作,每次操作可以确定某次项的系数,这个系数可以是任意实数.给出一个博弈中间状态,最后如果这个多项式被x-K整除就 ...

  3. Linux下汇编语言学习笔记66 ---

    这是17年暑假学习Linux汇编语言的笔记记录,参考书目为清华大学出版社 Jeff Duntemann著 梁晓辉译<汇编语言基于Linux环境>的书,喜欢看原版书的同学可以看<Ass ...

  4. __asm

    来源:http://msdn.microsoft.com/zh-cn/library/45yd4tzz.aspx Microsoft 专用 __asm 关键字调用一个内联汇编,并且可以显示,每当 c. ...

  5. SQL SERVER 2012 第三章 T-SQL 基本SELECT语句用法,Where子句详细用法

    select [all|distinct] [top (<expression>) [Percent] [with ties]] <column list> [from < ...

  6. iframe显示滚动条

    子页面通过iframe加载,出现了竖向滚动条 最后查出原因:文档申明 iframe有滚动条的页面的文档申明 <!DOCTYPE html> 改成如下就行了 <!DOCTYPE HTM ...

  7. 我的arcgis培训照片14

    来自:http://www.cioiot.com/successview-562-1.html

  8. bootstrap模态框出现或者消失的回调函数

    当某一模态框出现的时候就触发函数: $(".modal").on('show.bs.modal',function(){ if(vueObj){...}else{//如果vue对象 ...

  9. Java集合类汇总记录--JDK篇

    接口类图 Java Collection由两套并行的接口组成,一套是Collection接口,一套是Map接口.例如以下图 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkb ...

  10. 【跟我一步一步学Struts2】——登陆样例

    本篇博客通过一个简单的登陆小样例来入门,简单了解一下struts2是怎样工作的: 第一步引入Jar包: commons-fileupload-1.2.1.jar,文件上传 commons-loggin ...