50+80+90=220。(每题满分90)

砍树

小A在一条水平的马路上种了n棵树,过了几年树都长得很高大了,每棵树都可以看作是一条长度为a[i]的竖线段。由于有的树过于高大,挡住了其他的树,使得另一些树得不到阳光。如果有两棵树i、j,i顶端与j底端连线的倾角大于45度,我们就定义为i挡住了j。现在小A希望将一些树砍低,使得不存在挡住的情况。他想知道总共最少需要砍掉多少长度,请你来帮他计算一下。

注意,如果同一位置有两棵树的话,根据题意,我们只能将这两棵树都砍成高度为0才能保证它们不相互挡住,但是高度为0并不代表这棵树不存在。

输入格式:

第一行一个正整数n,表示有n棵树。

接下来n行,每行两个正整数p[i], a[i],表示一棵树的位置和高度。

输出格式:

输一个数,表示最少砍断多少长度

样例输入:

3

0 2

1 2

3 3

样例输出:

3

数据范围:

对于50%的数据,n≤100

对于100%的数据,n≤100000, 0<p[i], a[i]≤10000

时间限制:

1 sec

空间限制:

128MB


开始看错题了……原来树即使砍到高度为0它还是在那。

所以排序做一下就好了。

然后因为没有特判不需要砍就WA小数据……

统计方案

小B写了一个程序,随机生成了n个正整数,分别是a[1]..a[n],他取出了其中一些数,并把它们乘起来之后模p,得到了余数c。但是没过多久,小B就忘记他选了哪些数,他想把所有可能的取数方案都找出来。你能帮他计算一下一共有多少种取数方案吗?请把最后的方案数模1000000007后输出。

小B记得他至少取了一个数。

输入格式:

第一行三个正整数n,p,c,含义如题目所述。

接下来一行有n个正整数,表示生成的n个随机数。

输出格式:

一个数,方案数模1000000007。

样例输入:

2 7 2

1 2

样例输出:

2

数据范围:

对于30%的数据,n≤16

另有30%的数据,p≤10000

对于100%的数据,n≤32, p≤10^9, c≤10^9, a[i]<p, p是质数

时间限制:

1 sec

空间限制:

128MB


meet in the middle,折半搜索模板题.

数据中有一个点c≥p,但是根据题面这是不合法的……

游戏

Alice和Bob两个人正在玩一个游戏,游戏有很多种任务,难度为p的任务(p是正整数),有1/(2p)的概率完成并得到2(p-1)分,如果完成不了,得0分。一开始每人都是0分,从Alice开始轮流做任务,她可以选择任意一个任务来做;而Bob只会做难度为1的任务。只要其中有一个人达到n分,即算作那个人胜利。求Alice采取最优策略的情况下获胜的概率。

输入格式:

一个正整数n,含义如题目所述。

输出格式:

一个数,表示Alice获胜的概率,保留6位小数。

样例输入:

1

样例输出:

0.666667

数据范围:

对于30%的数据,n≤10

对于100%的数据,n≤500

时间限制:

1sec

空间限制:

128MB

题解

数据范围这么小,随便定义状态都行。

\(f[i,j]\)表示Alice得了\(i\)分,Bob得了\(j\)分时的概率.

题目中的最优策略是什么呢?这里指的是各种Alice的各种方案中概率的最大值.

然后就是简单的概率DP了,时间复杂度\(O(n^2\log n)\).

#include<bits/stdc++.h>
#define co const
#define il inline
template<class T>T read(){
T x=0,w=1;char c=getchar();
for(;!isdigit(c);c=getchar())if(c=='-') w=-w;
for(;isdigit(c);c=getchar()) x=x*10+c-'0';
return x*w;
}
template<class T>T read(T&x){
return x=read<T>();
}
using namespace std; co int N=501;
int n;
bool vis[N][N];
double f[N][N]; double dp(int i,int j){
if(i>=n) return 1;
if(j>=n) return 0;
if(vis[i][j]) return f[i][j];
vis[i][j]=1;
int up=ceil(log2(n-i));
double ans=0;
for(int p=0;p<=up;++p){
double sum=pow(0.5,p+2)*(dp(i+(1<<p),j)+dp(i+(1<<p),j+1))+(1-pow(0.5,p+1))*0.5*dp(i,j+1);
ans=max(ans,sum/(1-(1-pow(0.5,p+1))*0.5));
}
return f[i][j]=ans;
}
int main(){
read(n);
printf("%lf\n",dp(0,0));
return 0;
}

test20190725 夏令营测试11的更多相关文章

  1. XJOI 夏令营501-511测试11 游戏

    Alice和Bob两个人正在玩一个游戏,游戏有很多种任务,难度为p的任务(p是正整数),有1/(2^p)的概率完成并得到2^(p-1)分,如果完成不了,得0分.一开始每人都是0分,从Alice开始轮流 ...

  2. XJOI 夏令营501-511测试11 统计方案

    小B写了一个程序,随机生成了n个正整数,分别是a[1]..a[n],他取出了其中一些数,并把它们乘起来之后模p,得到了余数c.但是没过多久,小B就忘记他选了哪些数,他想把所有可能的取数方案都找出来.你 ...

  3. Linux基础测试--11道题

    000.创建一个目录/data mkdir /data 001.在/data 下面创建一个文件oldboy.txt touch /data/oldboy.txt 002.为oldboy.txt 增加内 ...

  4. 2019.8.1 NOIP模拟测试11 反思总结

    延迟了一天来补一个反思总结 急匆匆赶回来考试,我们这边大家的状态都稍微有一点差,不过最后的成绩总体来看好像还不错XD 其实这次拿分的大都是暴力[?],除了某些专注于某道题的人以及远程爆踩我们的某学车神 ...

  5. [考试反思]0801NOIP模拟测试11

    8月开门红. 放假回来果然像是神志不清一样. 但还是要接受这个事实. 嗯,说好听点,并列rank#7. 说难听点,垃圾rank#18. 都不用粘人名就知道我是哪一个吧... 因为图片不能太长,所以就不 ...

  6. NOIP模拟测试11

    这次考试T1想到了正解没有去实现,然后就死了,不过我估计就算想到正解也会挂(26^2和暴力一个分),肝了两个小时T2屁都没蹦出来,T3没有搞清那个式子的含义. (不过一分没挂) T1:string 开 ...

  7. [NOIP模拟测试11] 题解

    A.string 和河北的一道省选题很像.考场上写的暴力桶排,正解其实就是优化一下这个思路. 开线段树维护字符串中每个字母出现的次数.对于每条询问,区间查询.区间赋值维护即可. 另外,本题卡常严重,正 ...

  8. NOIP模拟测试11「string&#183;matrix&#183;big」

    打的big出了点小问题,maxx初值我设的0然后少了10分 第二题暴力打炸 第一题剪了一些没用的枝依然40分 总分70 这是一次失败的考试 string 想到和序列那个题很像,但我没做序列,考场回忆学 ...

  9. 编写可测试的JavaScript代码

    <编写可测试的JavaScript代码>基本信息作者: [美] Mark Ethan Trostler 托斯勒 著 译者: 徐涛出版社:人民邮电出版社ISBN:9787115373373上 ...

随机推荐

  1. spring security的BCryptPasswordEncoder加密和对密码验证的原理

    目录 BCryptPasswordEncoder加密和对密码验证的原理 一.加密算法和hash算法的区别 二.源码解析 1. encode方法 2. BCrypt.hashpw方法 3. matche ...

  2. 谷歌浏览器调试javascript方法

    谷歌浏览器调试javascript方法 1 ctrl + shift + f 全局文件搜索 然后加断点 也可以直接编辑js文件 保存后 就更新了 一般用在点击事件上 ps:如果加了断点 刷新浏览断点消 ...

  3. Windows 下使用 Composer 安装 thinkphp

    我用 XAMPP 安装 thinkphp 会出错,所以把环境换成了 phpStudy,这样甚至不用到处找安装包,直接去官网有最新版本,PHP 版本也是比较新的. 安装 phpStudy 先去官网下载安 ...

  4. mysql在windows下的服务安装

    前提必须用管理员身份运行 1.删除Mysql服务,打开命令行,输入下面的指令 sc delete MySql 2.初始化一下数据,比如配置文件中设置了数据的存储路径,日志位置等:该命令必须用管理员身份 ...

  5. linux命令及相关配置

    hostname # 查看 hostname vim /etc/hostname # 修改hostname,重启后生效 vim /etc/resolv.conf 写入 nameserver 192.1 ...

  6. String和Irreducible Polynomial(2019牛客暑期多校训练营(第七场))

    示例: 输入: 4000010010111011110 输出: 00001001 0111 01111 0 题意:给出一个只含有0和1的字符串,找出一种分割方法,使得每个分割出的字符串都是在该字符串自 ...

  7. 可能这些是你想要的H5软键盘兼容方案

    前言 最近一段时间在做 H5 聊天项目,踩过其中一大坑:输入框获取焦点,软键盘弹起,要求输入框吸附(或顶)在输入法框上.需求很明确,看似很简单,其实不然.从实验过一些机型上看,发现主要存在以下问题: ...

  8. Linux中添加用户与删除用户

    注意:添加用户和删除用户需要root来执行. 添加用户 用useradd命令,例如: # useradd -d/home/tom -s/bin/bash -u1000 tom  这样就添加了新用户to ...

  9. 如何为非常不确定的行为(如并发)设计安全的 API,使用这些 API 时如何确保安全

    原文:如何为非常不确定的行为(如并发)设计安全的 API,使用这些 API 时如何确保安全 .NET 中提供了一些线程安全的类型,如 ConcurrentDictionary<TKey, TVa ...

  10. 查看font字体文件

    url: http://bluejamesbond.github.io/CharacterMap/ 打开网址后,如下图操作