bzoj 4008、4011、1499

全是扒题解,,,太弱了。。。

不乱BB了。

4008

 1 #include <bits/stdc++.h>
 2 #define LL long long
 3 #define lowbit(x) x&(-x)
 4 #define inf 0x3f3f3f3f
 5 #define eps 1e-5
 6 #define N 100005
 7 using namespace std;
 8 inline int ra()
 9 {
10     int x=0,f=1; char ch=getchar();
11     while (ch<‘0‘ || ch>‘9‘) {if (ch==‘-‘) f=-1; ch=getchar();}
12     while (ch>=‘0‘ && ch<=‘9‘) {x=x*10+ch-‘0‘; ch=getchar();}
13     return x*f;
14 }
15 int T;
16 int n,r,d[255];
17 double p[255];
18 double f[255][255],pw[255][255];
19 int main(int argc, char const *argv[])
20 {
21     T=ra();
22     while (T--)
23     {
24         n=ra(); r=ra();
25         memset(f,0,sizeof(f));
26         for (int i=1; i<=n; i++)
27         {
28             scanf("%lf",&p[i]);
29             d[i]=ra();
30         }
31         double ans=0;
32         for (int i=1; i<=n; i++)
33         {
34             pw[i][0]=1;
35             for (int j=1; j<=r; j++) pw[i][j]=pw[i][j-1]*(1-p[i]);
36         }
37         f[0][r]=1;
38         for (int i=0; i<n; i++)
39             for (int j=0; j<=r; j++)
40             {
41                 f[i+1][j]+=f[i][j]*pw[i+1][j];
42                 if (j-1>=0)
43                 {
44                     f[i+1][j-1]+=f[i][j]*(1-pw[i+1][j]);
45                     ans+=f[i][j]*(1-pw[i+1][j])*d[i+1];
46                 }
47             }
48         printf("%.10lf\n",ans);
49     }
50     return 0;
51 }

4011

 1 #include <bits/stdc++.h>
 2 #define LL long long
 3 #define lowbit(x) x&(-x)
 4 #define inf 0x3f3f3f3f
 5 #define eps 1e-5
 6 #define N 100005
 7 using namespace std;
 8 inline int ra()
 9 {
10     int x=0,f=1; char ch=getchar();
11     while (ch<‘0‘ || ch>‘9‘) {if (ch==‘-‘) f=-1; ch=getchar();}
12     while (ch>=‘0‘ && ch<=‘9‘) {x=x*10+ch-‘0‘; ch=getchar();}
13     return x*f;
14 }
15 const int mod=1e9+7;
16 LL ans=1;
17 int n,m,x,y,cnt;
18 int head[100005],d[100005],b[100005];
19 LL f[100005],ine[200005];
20 vector<int> st;
21 struct edge{
22     int to,next;
23 }e[200005];
24 void insert(int x, int y)
25 {
26     e[++cnt].next=head[x]; e[cnt].to=y; head[x]=cnt;
27 }
28 void dp()
29 {
30     f[y]=ans;
31     for (int i=1; i<=n; i++) if (!d[i]) st.push_back(i);
32     while (!st.empty())
33     {
34         int now=st.back(); st.pop_back();
35         f[now]=f[now]*ine[b[now]]%mod;
36         for (int i=head[now];i;i=e[i].next)
37         {
38             f[e[i].to]=(f[e[i].to]+f[now])%mod;
39             d[e[i].to]--;
40             if (!d[e[i].to]) st.push_back(e[i].to);
41         }
42     }
43 }
44 int main(int argc, char const *argv[])
45 {
46     n=ra(); m=ra(); x=ra(); y=ra();
47     ine[1]=1;
48     for (int i=2; i<=m+1; i++) ine[i]=(-ine[mod%i]*(mod/i)+mod)%mod;//??
49     for (int i=1; i<=m; i++)
50     {
51         int xx=ra(),yy=ra();
52         insert(xx,yy);
53         d[yy]++;
54     }
55     d[y]++;
56     for (int i=1; i<=n; i++) b[i]=d[i];
57     for (int i=2; i<=n; i++)
58         ans=ans*d[i]%mod;
59     d[y]--;
60     if (y==1) {printf("%lld\n",ans); return 0;}
61     dp();
62     ans=(ans-f[x]+mod)%mod;
63     printf("%lld\n",ans);
64     return 0;
65 }

1499

 1 #include <bits/stdc++.h>
 2 #define LL long long
 3 #define lowbit(x) x&(-x)
 4 #define inf 0x3f3f3f3f
 5 #define eps 1e-5
 6 #define N 100005
 7 using namespace std;
 8 inline int ra()
 9 {
10     int x=0,f=1; char ch=getchar();
11     while (ch<‘0‘ || ch>‘9‘) {if (ch==‘-‘) f=-1; ch=getchar();}
12     while (ch>=‘0‘ && ch<=‘9‘) {x=x*10+ch-‘0‘; ch=getchar();}
13     return x*f;
14 }
15 char a[205][205];
16 int f[205][205];
17 int xx[]={0,-1,1,0,0},yy[]={0,0,0,-1,1};
18 int q[205],pos[205],head,tail;
19 int n,m,sx,sy,K,ans;
20 void push(int now, int val)
21 {
22     if (val==-inf) return;
23     while (val-now>q[tail] && head<=tail) tail--;
24     q[++tail]=val-now;
25     pos[tail]=now;
26 }
27 void dp(int p, int x, int y, int d, int T)
28 {
29     head=1,tail=0; int now=1;
30     while (x<=n && y<=m && x>=1 && y>=1)
31     {
32         if (a[x][y]==‘x‘) head=1,tail=0;
33             else push(now,f[x][y]);
34         while (now-pos[head]>T && head<=tail) head++;
35         if (head<=tail) f[x][y]=q[head]+now;
36             else f[x][y]=-inf;
37         ans=max(ans,f[x][y]);
38         x+=xx[d]; y+=yy[d];
39         now++;
40     }
41 }
42 int main(int argc, char const *argv[])
43 {
44     n=ra(); m=ra(); sx=ra(); sy=ra(); K=ra();
45     for (int i=1; i<=n; i++) scanf("%s",a[i]+1);
46     for (int i=1; i<=n; i++)
47         for (int j=1; j<=m; j++)
48             f[i][j]=-inf;
49     f[sx][sy]=0;
50     for (int i=1; i<=K; i++)
51     {
52         int x=ra(),y=ra(),d=ra();
53         if (d==1) for (int j=1; j<=m; j++) dp(i,n,j,d,y-x+1);
54         if (d==2) for (int j=1; j<=m; j++) dp(i,1,j,d,y-x+1);
55         if (d==3) for (int j=1; j<=n; j++) dp(i,j,m,d,y-x+1);
56         if (d==4) for (int j=1; j<=n; j++) dp(i,j,1,d,y-x+1);
57     }
58     printf("%d\n",ans);
59     return 0;
60 }
时间: 2024-10-14 00:27:10

bzoj 4008、4011、1499的相关文章

JQUERY省、市、县城市联动选择

JQUERY 插件开发——CITYLINKAGE(省.市.县城市联动选择) 第一部分:背景   开发源于需求,本次城市联动选择插件算是我写插件的一个特例吧,不是我目前工作需要些的,算是兴趣驱使吧.之前呢,一直想写这个插件,然后错过了一个写这个插件的机会(这个得回顾到很久以前了...此处省去N个字).然后最近“瘾”又犯了,呵呵,随手就拿这个“欠”了很久的插件开刀了.大家都应该知道“某宝”的这个插件写的还是很强大的,支持到街道(镇)级别...可见他们维护的前端数据有多大...不过呢,临渊羡鱼,不如退

003-文本处理、排序、统计及bash特性、用户组权限、用户管理配置文件

l  1.文本处理命令 1.)cat(concatenate):连接并显示 tac:倒序显示文件 -n(number):显示行号 -E(show-ends):显示行结束符 2.)more.less:分屏显示 more: 向后翻,翻到尾部退出 less: 与打开man使用相同 3.)head:查看前n行 Tail:查看后n行 -n(lines):指定显示n行 tail -f: 查看文件尾部,不退出,等待显示后续追加至此文件的新内容: 4.)cut:文本剪切 -d(delimiter):指定字段分隔

用户、组、

用户标识.密码: Authentication 认证 Authorzation  授权 Audition     审计 这就是3A机制, 用户类别:分为管理员和普通用户:普通用户又可分为系统用户和登录用户 用户标识:系统按照UID来区分用户的,它的取值范围是16bits二进制数字:0-65535 管理员:用0表示 普通用户:1-65535 系统用户:1-499,是centos6:1-999 是centos7: 登录用户:500-60000centos6 :1000-60000centos7 名称

2、权限、变量、for 学习笔记

ls 显示目录内容,不包含以点开头的文件 ls -a           显示目录内容,包含以点开头的文件 ls -l 长格式显示目录内容 ls -d 显示目录自身的信息,通常与-l同时使用 ls -r 逆序显示目录内容 ls -R 递归显示目录内容 ls -h 以易读的方式显示文件大小,通常与-l同时使用 ls -i 显示inode信息 tree 树状形式显示目录内容 alias         显示当前shell中定义的所有别名 alias 别名='原始命令' 定义别名 unalias 别名

关于UID和GID的创建、修改、删除;简要举例

用户.组和权限 安全3A资源分派 (authentication)认证 (authorization)授权 (accounting)审计 user( 用户) Linux用户:Username/UID   (用户的名称和用户的UID) 管理员:root,0   管理员的UID是0  (一般系统默认root为管理员,用户UID为0的都可以作为管理员) 普通用户:1-65535 普通用户分为两种: 系统用户:1-499(CentOS6),1-999(CentOS) 对守护进程获取资源进行权限分配 登录

Linux用户、组、权限管理

linux 用户: linux用户主要分为:管理员和普通用户,普通用户又包含系统用户和登录用户.系统用户不需要登录系统,只为后台服务运行提供身份,并对守护进程获取资源进行权限分配,登录用户需要交互式登录. linux系统主要靠UID号来识别管理员和普通用户.在CentOS 6上,管理员的UID为0,普通用户的UID为1-65535,其中系统用户的UID为1-499,登录用户的UID为500-65535:在CentOS 7上,管理员的UID为0,普通用的UID 为1-65535,其中系统用户的UI

【自学Linux】Linux用户、组、权限(一)

用户.组.权限权限:r,w,x 文件:r:可读,可以使用类似cat等命令查看文件内容w:可写,可以编辑或删除此文件x:可执行,eXacutable,可以命令提示符下当中命令提交给内核运行 0 000 ---:无权限1 001 --x:执行2 010 -w-:写3 011 -wx:写和执行4 100 r--:只读5 101 r-x:读和执行6 110 rw-:读写7 111 rwx:读写执行 用户:UID,/etc/passwd组:GID,/etc/group 影子命令:用户:/etc/shado

Linux 用户、组、权限

用户.组.权限 安全上下文(secure context): 权限: r,w,x 文件: r:可读,可以使用类似cat等命令查看文件内容: w:可写,可以编辑或删除此文件: x:可执行,exacutable,可以在命令提示符下当作命令提交给内核运行: 目录: r:可对此目录执行ls以列出内部的所有文件: w:可以在此目录创建文件: x:可以使用cd切换进此目录,也可以使用ls -l查看内部文件的详细信息: 0 000 ---:无权限 1 001 --x:执行 2 010 -w-: 写 3 011

【BZOJ】【4011】【HNOI2015】落忆枫音

拓扑排序+DP 题解:http://blog.csdn.net/PoPoQQQ/article/details/45194103 http://www.cnblogs.com/mmlz/p/4448742.html 通过转化……路径外的$degree_i$的乘积转化成所有点的degree之积除以路径内的,所以用到逆元…… PoPoQQQ的线性筛逆元好神奇啊……>_< OrzOrz 1 /******************************************************