2.18比赛(T2,T3留坑)
2.18比赛(T2,T3留坑)
超越一切(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=;
bool f=;
char ch=' ';
while(!isdigit(ch))
{
f|=(ch=='-'); ch=getchar();
}
while(isdigit(ch))
{
s=(s<<)+(s<<)+(ch^); ch=getchar();
}
return (f)?(-s):(s);
}
#define R(x) x=read()
inline void write(ll x)
{
if(x<)
{
putchar('-'); x=-x;
}
if(x<)
{
putchar(x+''); return;
}
write(x/);
putchar((x%)+'');
return;
}
#define W(x) write(x),putchar(' ')
#define Wl(x) write(x),putchar('\n')
const ll Mod=;
const ll N=;
ll h,w,k;
ll Jiec[N],Niy[N];
inline void Ad(ll &x,ll y)
{
x+=y;
x-=(x>=Mod)?(Mod):;
return;
}
inline ll Ksm(ll x,ll y)
{
ll ans=1ll;
while(y)
{
if(y&) ans=ans*x%Mod;
x=x*x%Mod;
y>>=;
}
return ans%Mod;
}
inline ll C(ll n,ll m)
{
if(!Niy[m]) Niy[m]=Ksm(Jiec[m],Mod-)%Mod;
if(!Niy[n-m]) Niy[n-m]=Ksm(Jiec[n-m],Mod-)%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[]=1ll;
for(i=;i<=h+w;i++)
{
Jiec[i]=Jiec[i-]*i%Mod;
}
ll ans=;
ll NN=Ksm(C(h+w,2ll),Mod-)%Mod;
Ad(ans,C(k + ,3ll)*NN%Mod);
ans=ans*(h*w%Mod)%Mod;
Ad(ans,(((+k)*k)>>)%Mod);
Ad(ans,k);
Wl(ans);
return ;
}
/*
input
1 2
output
*/
75pts暴力
附上ak王pfy的题解
2.18比赛(T2,T3留坑)的更多相关文章
- CPU虚拟化技术(留坑)
留坑~~~ 不知道这个是这么实现的 CPU虚拟化技术就是单CPU模拟多CPU并行,允许一个平台同时运行多个操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率.虚 ...
- 【留坑】uva12299
这么sb的题本来想练练手记过就是过不了 拍半天也没问题 留坑 哪天有空了去linux下面试试 #include<cstdio> #include<cstring> #inclu ...
- java 多线程,T1 T2 T3 顺序执行
一.程序设计 1.抽象公共类PublicThread,具有先前线程属性previousThread.父类为Thread 2.在PublicThread的run()方法中判断previousThread ...
- 三个线程T1,T2,T3.保证顺序执行的三种方法
经常看见面试题:有三个线程T1,T2,T3,有什么方法可以确保它们按顺序执行.今天手写测试了一下,下面贴出目前想到的3种实现方式 说明:这里在线程中我都用到了sleep方法,目的是更容易发现问题.之前 ...
- 【问题解决方案】Git bash进入多层子目录问题(通配符问题留坑)
cd进入指定路径下:cd 斜杠 斜杠 方法一: 1- 撇丿,不是"那",盘符前面要加上 / (d盘前面也加,不加也行) 2- 路径名不区分大小写 3- 不用空格 4- 如果目录名中 ...
- [kuangbin带你飞]专题十一 网络流个人题解(L题留坑)
A - ACM Computer Factory 题目描述:某个工厂可以利用P个部件做一台电脑,有N个加工用的机器,但是每一个机器需要特定的部分才能加工,给你P与N,然后是N行描述机器的最大同时加工数 ...
- 题解 queen(留坑)
传送门 博客园突然打不开了,奇奇怪怪的-- 少写个等号没看出来 nm写反了没看出来 考完5min全拍出来了 手残属性加持 不对拍等于爆零 yysy,我连卢卡斯定理的存在都忘了-- 发现要让一大堆皇后能 ...
- join控制线程的执行循序 T1 -> T2 -> T3
/** * 控制线程的执行循序 T1 -> T2 -> T3 * join实现 */ public static void join(){ Thread t1 = new Thread(( ...
- 题解 c(留坑)
传送门 这题卡常--而且目前还没有卡过去 首先以原树重心为根,向所有子树重心连边,可以建立一棵点分树 点分树有两个性质: 一个是树高只有log层 另一个是两点在点分树上的lca一定在原树上两点间的树上 ...
随机推荐
- PAT A1140 Look-and-say Sequence (20 分)——数学题
Look-and-say sequence is a sequence of integers as the following: D, D1, D111, D113, D11231, D112213 ...
- Android学习之基础知识七—碎片的最佳实践
一.Android碎片(Fragment)的最佳实践——简易版新闻应用 第一步:新建FragmentBestPractice项目,在app/build.gradle当中添加:RecyclerView ...
- Tensorflow-hub[例子解析1]
0. 引言 Tensorflow于1.7之后推出了tensorflow hub,其是一个适合于迁移学习的部分,主要通过将tensorflow的训练好的模型进行模块划分,并可以再次加以利用.不过介于推出 ...
- python中#!/usr/bin/python与#!/usr/bin/env python的区别
目的是在运行python脚本的时候告诉操作系统我们要用python解释器去运行py脚本 所以我们在第一句往往会写如下两句中的其中一句: #!/usr/bin/python 或 >#!/usr/b ...
- java读取写入文件
先来看一下java写入文件 public static void readTxt(String value) throws IOException { FileWriter fw = null; tr ...
- thymeleaf参考手册
1.创建 html <!DOCTYPE html><html xmlns:th="http://www.thymeleaf.org"></html&g ...
- C# 枚举基本用法及扩展方法
没什么好说的,都是些基础! 代码如下: using System; using System.Collections.Generic; using System.ComponentModel; usi ...
- ABP从入门到精通(4):使用基于JWT标准的Token访问WebApi
项目:asp.net zero 4.2.0 .net core(1.1) 版本 我们做项目的时候可能会遇到需要提供api给app调用,ABP动态生成的WebApi提供了方便的基于JWT标准的Token ...
- MPI-Hydra Process Managerment Framework
1. 概述2. 执行过程和控制流 官方文档地址:https://wiki.mpich.org/mpich/index.php/Hydra_Process_Management_Framework 1. ...
- 基于HTML5 Canvas的工控SCADA模拟飞机飞行
昨天看到一篇文章说是学习如何开飞机的,然后我就想,如果我也可以开飞机那就好玩了,每个人小时候都想做飞行员!中国飞行员太难当了,再说也不轻易让你开飞机!后来我就想如果能用 HT 开飞机那就是真的有趣了, ...