T1  chinese

根据他的问题i*f[i]我们容易联想到,答案其实是每种方案中每个点的贡献为1的加和

我们可以转变问题,每个点在所有方案的贡献

进而其实询问就是1-k的取值,有多少中方案再取个和

事实上这样做就是将每个点抽离出来,虽然每种方案中可能包含多个可行点,但是我们每次考虑的都只是一个点的贡献,所以正确

ps:指数不能取模

代码很短

 1 #include<bits/stdc++.h>
2 #define int long long
3 using namespace std;
4 int n,m,K;
5 int mod=1e9+7;
6 int poww(int x,int y)
7 {
8 int ans=1;
9 while(y)
10 {
11 if(y&1)ans=ans*x%mod;
12 x=x*x%mod;
13 y>>=1;
14 }
15 return ans%mod;
16 }
17 int sum=0;
18 signed main()
19 {
20 scanf("%lld%lld%lld",&n,&m,&K);
21 int zz=poww(K,n*m-n-m+1);
22 int two=(n-1)+(m-1);
23 for(int k=2;k<=K;++k)
24 {
25 int xx=poww(k-1,two);
26 sum=(sum+(xx*zz)%mod)%mod;
27 }
28 printf("%lld\n",sum*n%mod*m%mod);
29 }

T2 physics

正解没打,咕了

用暴力剪枝水过的

剪枝一:处理前缀和后O(1)查询,但是因为每次改变的值很小

修改时只需判断修改符号是否在上一轮的答案中,是则输出答案,否则修改

剪枝二:每次二分的长度右边界都是上一轮的答案

 1 #include<bits/stdc++.h>
2 #define int long long
3 #define MAXN 2011
4 using namespace std;
5 int n,m;
6 char a[MAXN][MAXN];
7 int sum[MAXN][MAXN];
8 int last_x,last_y,last_len;
9 int zuo_x,zuo_y;
10 int get_sum1(int x1,int y1,int x2,int y2)
11 {
12 return sum[x2][y2]+sum[x1-1][y1-1]-sum[x2][y1-1]-sum[x1-1][y2];
13 }
14 int work(int mid)
15 {
16 for(int i=1;i<=n-mid+1;++i)
17 {
18 for(int j=1;j<=m-mid+1;++j)
19 {
20 if(get_sum1(i,j,i+mid-1,j+mid-1)==0)
21 {
22 last_x=i,last_y=j;last_len=mid;
23 return 1;
24 }
25 }
26 }
27 return 0;
28 }
29 void second_divied()
30 {
31 int l=1;int r=last_len;
32 while(l+1<r)
33 {
34 int mid=(l+r)>>1;
35 if(work(mid))l=mid;
36 else r=mid;
37 }
38 if(work(r))printf("%lld\n",r);
39 else if(work(l))printf("%lld\n",l);
40 }
41 int q;int ok=0;
42 void the_yu(int x,int y)
43 {
44 for(int i=x;i<=n;++i)
45 {
46 for(int j=y;j<=m;++j)
47 {
48 sum[i][j]=sum[i-1][j]+sum[i][j-1]-sum[i-1][j-1];
49 if(a[i][j]=='-')sum[i][j]++;
50 }
51 }
52 }
53 bool pan(int x,int y)
54 {
55 if(x>=last_x&&y>=last_y&&x<=last_x+last_len-1&&y<=last_y+last_len-1)return 0;
56 return 1;
57 }
58 signed main()
59 {
60 scanf("%lld%lld%lld",&n,&m,&q);last_len=min(n,m);
61 for(int i=1;i<=n;++i)scanf("%s",a[i]+1);
62 zuo_x=0x7fffff;zuo_y=0x7ffff;
63 for(int i=1;i<=q;++i)
64 {
65 int x,y;
66 scanf("%lld%lld",&x,&y);
67 a[x][y]='-';
68 zuo_x=min(zuo_x,x);zuo_y=min(zuo_y,y);
69 if(i>1&&pan(x,y))
70 {
71 printf("%lld\n",last_len);
72 continue;
73 }
74 else
75 {
76 if(i==1)the_yu(1,1);
77 else the_yu(zuo_x,zuo_y);
78 second_divied();
79 zuo_x=0x7fffff;zuo_y=0x7fffff;
80 }
81 }
82 }

T3 chemistry

概率期望,仿佛不可做,咕了....

「模拟8.29」chinese(性质)·physics·chemistry(概率期望)的更多相关文章

  1. 「模拟赛20180406」膜树 prufer编码+概率

    题目描述 给定一个完全图,保证\(w_{u,v}=w_{v,u}\)且\(w_{u,u}=0\),等概率选取一个随机生成树,对于每一对\((u,v)\),求\(dis(u,v)\)的期望值对\(998 ...

  2. 「模拟8.13」任(liu_runda的神题,性质分析)

    考场时没有发现性质,用了个前缀和优化暴力,结果写WA了 我们发现其实联通块的个数就是点的个数-边的个数 然后我们需要维护横向上和纵向上的边的前缀和 前缀和的查询形式稍改一下 暴力 1 #include ...

  3. 2021升级版微服务教程5—通过IDEA运行多个项目实例「模拟集群」

    2021升级版SpringCloud教程从入门到实战精通「H版&alibaba&链路追踪&日志&事务&锁」 教程全目录「含视频」:https://gitee.c ...

  4. 「模拟赛20190327」 第二题 DP+决策单调性优化

    题目描述 小火车虽然很穷,但是他还是得送礼物给妹子,所以他前往了二次元寻找不需要钱的礼物. 小火车准备玩玩二次元的游戏,游戏当然是在一个二维网格中展开的,网格大小是\(n\times m\)的,某些格 ...

  5. 「模拟赛20180306」回忆树 memory LCA+KMP+AC自动机+树状数组

    题目描述 回忆树是一棵树,树边上有小写字母. 一次回忆是这样的:你想起过往,触及心底--唔,不对,我们要说题目. 这题中我们认为回忆是这样的:给定 \(2\) 个点 \(u,v\) (\(u\) 可能 ...

  6. 「模拟8.23」阴阳 DP

    对于此题的性质我们考虑DP 分四种情况 黑色块在右侧单调降,单调升 还有在左侧 另外我们这样可能会记重,所以还要将重复记过的也就是边界线是横的和竖的 然后还要将全白全黑加上 1 #include< ...

  7. 「模拟8.18」字符串(卡特兰数)·乌鸦喝水(树状数组,二分)·所驼门王的宝藏(tarjan,拓扑)

    最近好颓啊,所以啥都做不出来 简单说一下这次考试,分机房了,还分不同考卷,果然我还是留在二机房的蒟蒻, 大概也只有这样的简单题,才能勉强水个rank 3吧........ 其实不必管在哪个机房,努力便 ...

  8. 「模拟8.17」star way to heaven(并查集,最小生成树)

    80分打法 首先二分最后答案,答案即为r,可看作以每个k为圆心r为半径的圆 我们进行并查集维护,维护相交的圆的边界 最后判断是否存在圆将上下边界覆盖,如有证明不行 1 #include<iost ...

  9. 「模拟8.21」山洞(矩阵优化DP)

    暴力: 正解: 考虑循环矩阵,f[i][j]表示从i点到j点的方案数 我们发现n很小,我们预处理出n次的f[i][j] 然后在矩阵快速幂中,我们要从当前的f[i][j]*f[j][k]-->fi ...

随机推荐

  1. springboot开发浅谈 2021/05/11

    学习了这么久,本人希望有时间能分享一下,这才写下这篇浅谈,谈谈软件,散散心情. 这是本人的博客园账号,欢迎关注,一起学习. 一开始学习springboot,看了好多网站,搜了好多课程.零零落落学了一些 ...

  2. 改善c++程序的150个建议(读后总结)-------19-26

    19. 明白在c++中如何使用c c++可以兼容c的绝大部分代码,但是还是有一部分不能兼容. c语言的编译器在调用函数时会把函数翻译成 : "_函数名",例如: int nasa( ...

  3. SpringBoot系列——Activiti7工作流引擎

    前言 工作流程是我们日常开发项目中常见的功能,本文记录springboot整合activiti7. Activiti介绍 官网:https://www.activiti.org 数据库表 act_hi ...

  4. Python自动扫描出微信不是好友名单

    前言 最近找几个老友准备聊天发现几个已经被删除好友名单,做为潜水党多年的我已经不知道成为多少人的黑名单,但是好友列表却依然有不是好友的名单,面对庞大的好友数量想要清除谈何容易.虽然可以发消息给所有人, ...

  5. ==与equals比较

    提到==与equals的区别,这就必须先回顾一下jvm内存的分配机制 ==和equals无非比较两个基本数据类型或者对象类型 八种基本类型: 基本类型 大小 默认值 封装类 byte 1 0 Byte ...

  6. 联想RD350板载RAID110i,安装CentOS 7 不识别RAID设备

    联想RD350板载RAID110i,安装CentOS 7 不识别RAID设备   情况如题所述. 1. 确认BIOS中 Boot mode为[UEFI]或者[AUTO] 2. 确认BIOS中 Stor ...

  7. 在/etc/profile下配置java的环境变量

    在/etc/profile下配置java的环境变量 原创 Java 作者:xiaoyan5686670 时间:2016-01-18 14:30:28  6152  0 以root用户编辑:#vi /e ...

  8. Win10开启移动热点

    Win10开启移动热点 禁用 无线网卡 启动 无线网卡

  9. 性能工具 stream 最新版本5.10 The STREAM benchmark

    官网下载最新性能工具 stream 最新版本5.10 https://github.com/jeffhammond/STREAM 官网下载最新性能工具 stream 最新版本5.10   http:/ ...

  10. Flume 常用配置项

    注:以下配置项均为常见配置项,查询详细配置项可以访问 flume 官网 Source 常见配置项 Avro Source 配置项名称 默认值 描述 Channel – type – 组件类型名称,必须 ...