Educational Codeforces Round 68 差G
Educational Codeforces Round 68
E
题意:有 n 个线段,每个都是平行 x 或者 y 轴,只有互相垂直的两线段才会相交。问形成了多少个矩形。 \(n \le 5000, -5000 \le x_i,y_i \le 5000\)
key:树状数组
考虑枚举矩形上边和下边,如果统计出与这两条边相交的竖线个数,那么就能知道贡献。先枚举下边,把所有与它相交的竖线插入树状数组。如果把竖线按照上端点的纵坐标排序,那么按照从下往上枚举上边时就可以删掉某些竖边。总复杂度 \(O(n^2 \log n)\)
F
题意:有 n 个题,第 i 个题花费时间是 \(a_i\) 或 \(a_i+1\),概率都是 0.5,你只能顺着做。问 T 时间做题的期望个数。 \(a_i \le 10^9, T \le 10^{14}, n \le 2*10^5\)
key:概率
key:姿势
总方案数是 \(2^n\), 考虑第 i 个题被做的方案数。令 \(sum_i=\sum_{j\le i}a_i\) ,那么剩余可随意支配的时间是 \(T-sum_i\),这些时间会被分配到前 i 个题上,每个至多分配 1,或者留给后面的题。后面的题不用管,就是 \(2^{n-i}\) 种方案。所以这个题的贡献是
\[
\frac{2^{n-i}*\sum_{j=0}^{T-sum_i} {i \choose j}}{2^n}
\]
分子是一个组合数第 i 行的前缀和,这个可以直接递推(\(\sum_{i\le m} {n+1 \choose i} = 2\sum_{i\le m} {n \choose i} - {n \choose m}\))。由于随着 i 增大, \(T-sum_i\) 变小,所以可以直接做。
Educational Codeforces Round 68 差G的更多相关文章
- Educational Codeforces Round 66 差G
Educational Codeforces Round 66 F 题意:长度为 n 的序列,求有多少个区间 \([l,r]\) ,使得其构成了一个 1~r-l+1 的排列. \(n \le 3*10 ...
- Educational Codeforces Round 68 E. Count The Rectangles
Educational Codeforces Round 68 E. Count The Rectangles 传送门 题意: 给出不超过\(n,n\leq 5000\)条直线,问共形成多少个矩形. ...
- Educational Codeforces Round 68 Editorial
题目链接:http://codeforces.com/contest/1194 A.Remove a Progre ...
- Educational Codeforces Round 68 (Rated for Div. 2)---B
http://codeforces.com/contest/1194/problem/B /* */ # include <bits/stdc++.h> using namespace s ...
- Educational Codeforces Round 68
目录 Contest Info Solutions A.Remove a Progression B.Yet Another Crosses Problem C.From S To T D.1-2-K ...
- Educational Codeforces Round 68 (Rated for Div. 2)补题
A. Remove a Progression 签到题,易知删去的为奇数,剩下的是正偶数数列. #include<iostream> using namespace std; int T; ...
- Educational Codeforces Round 68 (Rated for Div. 2) C. From S To T (字符串处理)
C. From S To T time limit per test1 second memory limit per test256 megabytes inputstandard input ou ...
- Educational Codeforces Round 68 (Rated for Div. 2) D. 1-2-K Game (博弈, sg函数,规律)
D. 1-2-K Game time limit per test2 seconds memory limit per test256 megabytes inputstandard input ou ...
- Educational Codeforces Round 68 (Rated for Div. 2)D(SG函数打表,找规律)
#include<bits/stdc++.h>using namespace std;int sg[1007];int main(){ int t; cin>>t; while ...
随机推荐
- 第二阶段scrum-2
1.整个团队的任务量: 2.任务看板: 会议照片: 产品状态: 正在连接配置数据库部分
- gogs 小团队使用 2
gogs 团队使用第二种方法如下, 前面办法参考前面的方法: 由 root 用户新建 organization, 比如说建立 hardware,然后把团队的 技术负责人拉到 owners 这个 tea ...
- Python Learning Day5
Response响应 import requests response = requests.get('https://baidu.com') # response响应 print(response. ...
- cmd 进入指定文件夹
1.通常情况下,我们要进入其他盘符下的任意目录,需要在CMD窗口运行两次命令:第一次,进入盘符,第二次进入指定目录 #进入D盘 d: #进入D盘下的anaconda目录 cd anacond 2.通过 ...
- windows 10 远程连接出现CredSSP加密Oracle修正错误
以下方法只受用于windows专业版或者企业版 . 解决方法: 运行 gpedit.msc 本地组策略: 计算机配置>管理模板>系统>凭据分配>加密Oracle修正 选择启用并 ...
- poj 3013 最短路SPFA算法
POJ_3013_最短路 Big Christmas Tree Time Limit: 3000MS Memory Limit: 131072K Total Submissions: 23630 ...
- Java if、switch语句,break,case,类型转换、常量、赋值比较、标识符(2)
if语句: /* if else 结构 简写格式: 变量 = (条件表达式)?表达式1:表达式2: 三元运算符: 好处:可以简化if else代码. 弊端:因为是一个运算符,所以运算完必须要有一个结果 ...
- Python说文解字_半成品再加工
1. 其实在编写代码的时候,根据需求和程序员的喜好,对现有类中的属性和方法进行二次加工,原先所给与的属性和方法贴合自己想要的需求.这就是我们常说的“重写”和二次封装. 2. 比如我们对现有的库list ...
- 创建DateFrame的常用四种方式
import pandas as pd %pylab 一.使用numpy创建 df = pd.DataFrame(np.arange(16).reshape((4,4)), index=list('a ...
- 题解 LOJ-6485 【LJJ学二项式定理】
题目 由于看到正解的单位根反演过于复杂 (也就是看不懂) 所以自己构造了一个算法,理论上这个算法应该还有成长的空间(可以变得普适性更强) 不知道和单位根反演有没有一样,就发表出来了 反正转载前记得要联 ...