2.18比赛(T2,T3留坑)

pdf版题面

pdf版题解

超越一切(ak)

【题目描述】

夏洛可得到一个(h+1)×(w+1)的巧克力,这意味着她横着最多可 以切 h 刀,竖着最多可以切 w 刀 她想总共切 k 刀,每刀要么竖着切要么横着切,如果竖着切了 i 刀,横着切了 j 刀,会得到(i+1) ×(j+1)个巧克力,定义一个切 k 刀 的方案的代价是每一刀切完后巧克力个数之和,假设每刀切的位置是 随机选择的(即剩余能切的位置等概率随机选一个),请你求出期望 代价,对109+7 取模

【输入格式】

一行三个正整数 h,w,k

【输出格式】

一行一个整数表示答案

【样例 1 输入】

2 1 2

【样例 1 输出】

666666677

【数据范围】

本题有 6 个子任务,每个子任务只有 1 个测试点

对于 100%的数据,满足 h,w≤ 1018,k≤h+w

Subtask 1[10 pts]: h,w≤300

Subtask 2[10 pts]:h,w≤5000

Subtask 3[30 pts]:h,w≤106

Subtask 4[25 pts]:k≤107

Subtask 5[15 pts]:k=h+w

Subtask 6[10 pts]:无特殊限制 选手文件夹下的额外样例和最终数据范围相同

sol:题解写的非常好(大雾)

稍微解释一下,对于每一个矩形,只对它左下角的那个点记录贡献

记录的是中间的点的贡献,就是不在边界上的点,这样的点共有h*w个,每个点切中的概率就是前面那个式子

然后因为这是每个点的期望,统计答案时要乘以h*w

还有边上的点,对于最最左下角的点,k刀中每次切都会有1的贡献,所以ans+k

还有不在左下角的点,每次切都会新产生一个会造成贡献的点,ans+=(1+k)*k/2

标算已经在上面了,在贴一遍没什么意思,放一份较易理解的75pts的暴力好了

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
inline ll read()
{ll s=0;bool f=0;char ch=' ';while(!isdigit(ch)){f|=(ch=='-'); ch=getchar();}while(isdigit(ch)){s=(s<<3)+(s<<1)+(ch^48); ch=getchar();}return (f)?(-s):(s);
}
#define R(x) x=read()
inline void write(ll x)
{if(x<0){putchar('-'); x=-x;}if(x<10){putchar(x+'0');    return;}write(x/10);putchar((x%10)+'0');return;
}
#define W(x) write(x),putchar(' ')
#define Wl(x) write(x),putchar('\n')
const ll Mod=1000000007;
const ll N=20000005;
ll h,w,k;
ll Jiec[N],Niy[N];
inline void Ad(ll &x,ll y)
{x+=y;x-=(x>=Mod)?(Mod):0;return;
}
inline ll Ksm(ll x,ll y)
{ll ans=1ll;while(y){if(y&1) ans=ans*x%Mod;x=x*x%Mod;y>>=1;}return ans%Mod;
}
inline ll C(ll n,ll m)
{if(!Niy[m]) Niy[m]=Ksm(Jiec[m],Mod-2)%Mod;if(!Niy[n-m]) Niy[n-m]=Ksm(Jiec[n-m],Mod-2)%Mod;return Jiec[n]*Niy[m]%Mod*Niy[n-m]%Mod;
}
int main()
{freopen("ak.in","r",stdin);freopen("ak.out","w",stdout);ll i;R(h); R(w); R(k);Jiec[0]=1ll;for(i=1;i<=h+w;i++){Jiec[i]=Jiec[i-1]*i%Mod;}ll ans=0;ll NN=Ksm(C(h+w,2ll),Mod-2)%Mod;Ad(ans,C(k + 1,3ll)*NN%Mod);ans=ans*(h*w%Mod)%Mod;Ad(ans,(((1+k)*k)>>1)%Mod);Ad(ans,k);Wl(ans);return 0;
}
/*
input
1 2
output
*/

75pts暴力

附上ak王pfy的题解

转载于:https://www.cnblogs.com/gaojunonly1/p/10408956.html

2.18比赛(T2,T3留坑)相关推荐

  1. join控制线程的执行循序 T1 - T2 - T3

    /*** 控制线程的执行循序 T1 -> T2 -> T3* join实现*/ public static void join(){Thread t1 = new Thread(() -& ...

  2. POJ2828 Buy Tickeys 树状数组+二分 线段树留坑。。。

    题意:一堆人排队买票,告诉你一堆人的序号(序号的意思是插在"当前"第几个人的后面)和姓名(姓名用编号代替). 思路:线段树 或 树状数组+二分(自己还不会线段树,所以这里继续留坑) ...

  3. Python爬虫:爆破百度云提取码(留坑)

    留坑预警!!貌似百度会封掉进行爆破的ip,所以暂且先不写了 贴一个调用别人接口的代码 import requests import re from requests.exceptions import ...

  4. CPython对象模型:string(留坑待填)

    在python3中,移除了2中的byte string,string变的和2中的unicode类似.所以在python3中烦人的编码问题会少不少. 在准备动手写这一篇的时候,查了不少资料,结果不小心发 ...

  5. 数据中心等级T1,T2,T3,T4,T5区别,科普数据中心等级知识

    谈的数据中心等级,很多人对数据中心等级划分并不了解.今天给大家普及一下数据中心等级划分. 了解更好IDC,运维,互联网商业请上我个人博客网站 https://www.serverceping.com/ ...

  6. 有三个线程T1,T2,T3,下面方法可以确保它们按顺序执行的有()该线程继续执行

    1.先启动最后一个(T3调用T2,T2调用T1) package com.te;public class Testt {static Testt t=new Testt();class T1 exte ...

  7. 统计计量 | 实证研究中常犯的18个统计学错误, 避坑防雷指南!

    来源:知乎 本文约2500字,建议阅读5分钟 本文为你介绍统计学中18个常见错误. 1 变量之间关系可以分为两类 函数关系:反映了事务之间某种确定性关系: 相关关系:两个变量之间存在某种依存关系,但二 ...

  8. 移植MT76x8 私有WIFI驱动V4.1.0.0到Openwrt 18.06所遇到的坑

    Openwrt系统,路由或者IOT网关方面,市面上能供个人或者小团队甚至小企业 ,可玩性高的也就MT76xx系列路由芯片了,其中很大一部分原因主要在于MTK的WIFI驱动管控不是很严格,相对较容易获取 ...

  9. 常犯的18个统计学错误, 避坑防雷指南!

    来源:知乎 转自:数据分析(ID : ecshujufenxi) 1 变量之间关系可以分为两类 函数关系:反映了事务之间某种确定性关系: 相关关系:两个变量之间存在某种依存关系,但二者并不是一一对应的 ...

最新文章

  1. 【ZJ选讲·字符串折叠】
  2. 误区30日谈16-20
  3. 英雄联盟手游主播否认部分英雄后期的作用,难道阿卡丽没未来?
  4. 腾讯:向今日头条开炮,只为1块钱和一声道歉!
  5. 转载:NPOI导出到Excel表格
  6. java实现多线程断点续传,上传下载
  7. 济南遥墙机场停5天怎么收费,济南遥墙国际机场停车场收费标准
  8. PHP字符串解析函数
  9. telegram bot : 自动下载youtube视频 发送到电报客户端
  10. Tomcat、Servlet、JSP、EL和JDK版本对照以及各版本Tomcat下载
  11. 旷视科技(Face++)和孙剑博士近期一些研究工作总结
  12. 汽车销售数据相关性分析
  13. 插图精美的html css教程
  14. ZeroNet搭建个人网站,一些搞笑图片
  15. 用python制作九宫格图片原来如此简单
  16. ch19.PDO。p360---练习三。通过pdo更新数据
  17. 移动端布局-px转vw、vh
  18. ExcelPatternTool: Excel表格-数据库互导工具
  19. PS 的常见抠图工具
  20. 洛谷P1004方格取数

热门文章

  1. python利用thinker制作多页面切换的桌面应用实例教程
  2. windows下环境变量配置后没生效,不重启电脑的解决办法
  3. html怎么给变量添加样式,通过CSS变量修改样式
  4. jvm类加载过程_JVM类生命周期概述:加载时机与加载过程
  5. 麒麟810处理器_何刚口中第二颗7nm处理器麒麟810曝光:将搭载自研NPU
  6. Web前端笔记-解决NicSroll使用后页面跳动(每次刷新或进入跳动一下然后正常)问题
  7. Python笔记-UiSelector中class定位
  8. Linux工作笔记-配置.bashrc或.cshrc使core文件产生(方便gdb调试)
  9. C++工作笔记-模版类要注意的地方(对比模版函数)
  10. 计算特征矩阵及哈希值(含OpenCV代码)