bzoj 4008、4011、1499
全是扒题解,,,太弱了。。。
不乱BB了。
4008
#include <bits/stdc++.h>
#define LL long long
#define lowbit(x) x&(-x)
#define inf 0x3f3f3f3f
#define eps 1e-5
#define N 100005
using namespace std;
inline int ra()
{
int x=,f=; char ch=getchar();
while (ch<'' || ch>'') {if (ch=='-') f=-; ch=getchar();}
while (ch>='' && ch<='') {x=x*+ch-''; ch=getchar();}
return x*f;
}
int T;
int n,r,d[];
double p[];
double f[][],pw[][];
int main(int argc, char const *argv[])
{
T=ra();
while (T--)
{
n=ra(); r=ra();
memset(f,,sizeof(f));
for (int i=; i<=n; i++)
{
scanf("%lf",&p[i]);
d[i]=ra();
}
double ans=;
for (int i=; i<=n; i++)
{
pw[i][]=;
for (int j=; j<=r; j++) pw[i][j]=pw[i][j-]*(-p[i]);
}
f[][r]=;
for (int i=; i<n; i++)
for (int j=; j<=r; j++)
{
f[i+][j]+=f[i][j]*pw[i+][j];
if (j->=)
{
f[i+][j-]+=f[i][j]*(-pw[i+][j]);
ans+=f[i][j]*(-pw[i+][j])*d[i+];
}
}
printf("%.10lf\n",ans);
}
return ;
}
4011
#include <bits/stdc++.h>
#define LL long long
#define lowbit(x) x&(-x)
#define inf 0x3f3f3f3f
#define eps 1e-5
#define N 100005
using namespace std;
inline int ra()
{
int x=,f=; char ch=getchar();
while (ch<'' || ch>'') {if (ch=='-') f=-; ch=getchar();}
while (ch>='' && ch<='') {x=x*+ch-''; ch=getchar();}
return x*f;
}
const int mod=1e9+;
LL ans=;
int n,m,x,y,cnt;
int head[],d[],b[];
LL f[],ine[];
vector<int> st;
struct edge{
int to,next;
}e[];
void insert(int x, int y)
{
e[++cnt].next=head[x]; e[cnt].to=y; head[x]=cnt;
}
void dp()
{
f[y]=ans;
for (int i=; i<=n; i++) if (!d[i]) st.push_back(i);
while (!st.empty())
{
int now=st.back(); st.pop_back();
f[now]=f[now]*ine[b[now]]%mod;
for (int i=head[now];i;i=e[i].next)
{
f[e[i].to]=(f[e[i].to]+f[now])%mod;
d[e[i].to]--;
if (!d[e[i].to]) st.push_back(e[i].to);
}
}
}
int main(int argc, char const *argv[])
{
n=ra(); m=ra(); x=ra(); y=ra();
ine[]=;
for (int i=; i<=m+; i++) ine[i]=(-ine[mod%i]*(mod/i)+mod)%mod;//??
for (int i=; i<=m; i++)
{
int xx=ra(),yy=ra();
insert(xx,yy);
d[yy]++;
}
d[y]++;
for (int i=; i<=n; i++) b[i]=d[i];
for (int i=; i<=n; i++)
ans=ans*d[i]%mod;
d[y]--;
if (y==) {printf("%lld\n",ans); return ;}
dp();
ans=(ans-f[x]+mod)%mod;
printf("%lld\n",ans);
return ;
}
1499
#include <bits/stdc++.h>
#define LL long long
#define lowbit(x) x&(-x)
#define inf 0x3f3f3f3f
#define eps 1e-5
#define N 100005
using namespace std;
inline int ra()
{
int x=,f=; char ch=getchar();
while (ch<'' || ch>'') {if (ch=='-') f=-; ch=getchar();}
while (ch>='' && ch<='') {x=x*+ch-''; ch=getchar();}
return x*f;
}
char a[][];
int f[][];
int xx[]={,-,,,},yy[]={,,,-,};
int q[],pos[],head,tail;
int n,m,sx,sy,K,ans;
void push(int now, int val)
{
if (val==-inf) return;
while (val-now>q[tail] && head<=tail) tail--;
q[++tail]=val-now;
pos[tail]=now;
}
void dp(int p, int x, int y, int d, int T)
{
head=,tail=; int now=;
while (x<=n && y<=m && x>= && y>=)
{
if (a[x][y]=='x') head=,tail=;
else push(now,f[x][y]);
while (now-pos[head]>T && head<=tail) head++;
if (head<=tail) f[x][y]=q[head]+now;
else f[x][y]=-inf;
ans=max(ans,f[x][y]);
x+=xx[d]; y+=yy[d];
now++;
}
}
int main(int argc, char const *argv[])
{
n=ra(); m=ra(); sx=ra(); sy=ra(); K=ra();
for (int i=; i<=n; i++) scanf("%s",a[i]+);
for (int i=; i<=n; i++)
for (int j=; j<=m; j++)
f[i][j]=-inf;
f[sx][sy]=;
for (int i=; i<=K; i++)
{
int x=ra(),y=ra(),d=ra();
if (d==) for (int j=; j<=m; j++) dp(i,n,j,d,y-x+);
if (d==) for (int j=; j<=m; j++) dp(i,,j,d,y-x+);
if (d==) for (int j=; j<=n; j++) dp(i,j,m,d,y-x+);
if (d==) for (int j=; j<=n; j++) dp(i,j,,d,y-x+);
}
printf("%d\n",ans);
return ;
}
bzoj 4008、4011、1499的更多相关文章
- JQUERY省、市、县城市联动选择
JQUERY 插件开发——CITYLINKAGE(省.市.县城市联动选择) 第一部分:背景 开发源于需求,本次城市联动选择插件算是我写插件的一个特例吧,不是我目前工作需要些的,算是兴趣驱使吧.之前 ...
- Jquery 插件开发——citylinkage(省、市、县城市联动选择)
第一部分:背景 开发源于需求,本次城市联动选择插件算是我写插件的一个特例吧,不是我目前工作需要些的,算是兴趣驱使吧.之前呢,一直想写这个插件,然后错过了一个写这个插件的机会(这个得回顾到很久以前了. ...
- 关于UID和GID的创建、修改、删除;简要举例
用户.组和权限 安全3A资源分派 (authentication)认证 (authorization)授权 (accounting)审计 user( 用户) Linux用户:Username/UID ...
- 【BZOJ】【4011】【HNOI2015】落忆枫音
拓扑排序+DP 题解:http://blog.csdn.net/PoPoQQQ/article/details/45194103 http://www.cnblogs.com/mmlz/p/44487 ...
- 从Hash Killer I、II、III论字符串哈希
首先,Hash Killer I.II.III是BZOJ上面三道很经典的字符串哈希破解题.当时关于II,本人还琢磨了好久,但一直不明白为啥别人AC的代码都才0.3kb左右,直到CYG神犇说可以直接随机 ...
- linux用户、组、权限问题
用户.组.权限一.权限:r, w, x1.文件权限: r:可读,可以使用类似cat等命令查看文件内容: w:可写,可以编辑或删除此文件: x: 可执行,eXacutabl ...
- 第六节 etc/passwd 、etc/shadow 、 useradd 、 groupadd
调优方法原理:禁用atime的修改来节省cpu和内存资源.命令:mount noatime disk 1.配置文件1. /etc/passwd文档结构:由":" 分隔成7个字段&q ...
- Linux权限管理(用户、组、文件管理)
一. Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示. 1. 文件查看类命令cat,tac, head, tail, more, less, ls ,file: -ls : l ...
- 【图解】你还在为 TCP 重传、滑动窗口、流量控制、拥塞控制发愁吗?看完图解就不愁了
每日一句英语学习,每天进步一点点: 前言 前一篇「硬不硬你说了算!近 40 张图解被问千百遍的 TCP 三次握手和四次挥手面试题」得到了很多读者的认可,在此特别感谢你们的认可,大家都暖暖的. 来了,今 ...
随机推荐
- 笔记||Python3进阶之装饰器
# 装饰器# 特征: 是用一个@开头的字符串# 装饰器通常用来装饰函数.或者类的方法# 被装饰后的函数,通常是在原有的函数基础上,会多出增加一点功能# 一般来说装饰器本身也是一个函数## def te ...
- 运行cmd直接进入指定目录下的命令
新建一个.bat批处理文件,文件命令为@ECHO OFF cmd /k cd /d c:data 运行该批处理文件cmd就可进入指定的文件夹,感兴趣的朋友可以参考下啊 新建一个.bat批处理文件,文件 ...
- keep-alive的使用
<keep-alive>是Vue的内置组件,能在组件切换过程中将状态保留在内存中,防止重复渲染DOM. <router-view>中间为组件</router-view&g ...
- A. Optimal Currency Exchange 兑换硬币,剩下的钱最少
A. Optimal Currency Exchange time limit per test 1.5 seconds memory limit per test 512 megabytes inp ...
- Py2与Py3的区别
总结Py2 与Py3 的区别 1 编码区别 在Python2中有两种字符串类型str和Unicode. 默认ASCII python2 str类型,相当于python3中的bytes类型 python ...
- Dockfile的详解
Dockerfile是构建镜像的指令文件,按照dockerfile的规范分为如下几部分: FROM 基础镜像,FROM alpine:3.8(任何的一个镜像都可以作为基础镜像,主要看我们做的镜像是干嘛 ...
- mysql数据库的索引类型
MySQL索引类型: 1.普通索引 最基本的索引,它没有任何限制,用于加速查询. 创建方法: a. 建表的时候一起创建 CREATE TABLE mytable ( name VARCHAR(32 ...
- android EditText中inputType的属性列表
android 1.5以后添加了软件虚拟键盘的功能,所以在输入提示中将会有对应的软键盘模式 android中inputType属性在EditText输入值时启动的虚拟键盘的风格有着重要的作用.这也大大 ...
- 「CF161B」Discounts
传送门 Luogu 解题思路 贪心地想一想,我们肯定要让凳子去给价格越高的商品打半价,那么我们就先按照价格排序,但是要优先把凳子排在前面. 然后我们发现一条凳子肯定只能给价格小于等于它本身的物品打半价 ...
- 图的数据结构的实现与遍历(DFS,BFS)
//图的存储结构:const int MAXSIZE = 10;//邻接矩阵template<class T>class MGraph {public: MGraph(T a[], ...