LOJ#2538. 「PKUWC2018」Slay the Spire
Description
Input
Output
Sample Input
2 3 2
2 3
1 2
10 16 14
2 3 4 5 6 7 8 9 10 11
1 2 3 4 5 6 7 8 9 10
Sample Output
253973805
1 #include<cstdio> 2 #include<algorithm> 3 #define N 3005 4 #define ll long long 5 #define mod 998244353 6 using namespace std; 7 int T; 8 ll n,m,k; 9 ll fac[N],inv[N],c[N][N],ans,f[N][N],g[N][N]; 10 ll w[2][N]; 11 ll ksm(ll x,ll t){ 12 ll ans=1; 13 for(;t;t>>=1,x=(x*x)%mod)if(t&1)ans=(ans*x)%mod; 14 return ans; 15 } 16 inline void pre(){ 17 fac[0]=1;for(int i=1;i<=3000;i++)fac[i]=(fac[i-1]*i)%mod; 18 inv[3000]=ksm(fac[3000],mod-2); 19 for(int i=2999;i>=0;i--)inv[i]=inv[i+1]*(i+1)%mod; 20 c[0][0]=1; 21 for(int i=1;i<=3000;i++) 22 for(int j=0;j<=i;j++) 23 c[i][j]=(c[i-1][j]+c[i-1][j-1])%mod; 24 for(int i=0;i<=3000;i++)f[0][i]=1; 25 } 26 bool cmp(int a,int b){return a>b;} 27 int main(){ 28 pre(); 29 scanf("%d",&T); 30 while(T--){ 31 scanf("%lld%lld%lld",&n,&m,&k); 32 for(int i=1;i<=n;i++)scanf("%lld",&w[0][i]); 33 for(int i=1;i<=n;i++)scanf("%lld",&w[1][i]); 34 sort(w[0]+1,w[0]+n+1,cmp); 35 sort(w[1]+1,w[1]+n+1,cmp); 36 ans=0; 37 for(int i=1;i<=n;i++) 38 for(int j=1;j<=n;j++){ 39 f[i][j]=(1ll*f[i-1][j-1]*w[0][j]+f[i][j-1])%mod; 40 g[i][j]=(g[i-1][j-1]+1ll*(c[j][i]-c[j-1][i]+mod)*w[1][j]+g[i][j-1])%mod; 41 } 42 for(int i=0;i<k;i++){ 43 ll sum1=f[i][n],sum2=0; 44 for(int j=k-i;n-j>=m-k;j++) 45 sum2=(sum2+1ll*(g[k-i][j]-g[k-i][j-1]+mod)*fac[n-j]%mod*inv[m-k]%mod*inv[n-j-(m-k)])%mod; 46 ans=(ans+sum1*sum2)%mod; 47 } 48 for(int i=k;i<m;i++){ 49 ll sum1=0,sum2=0; 50 for(int j=k-1;n-j>=i-(k-1);j++) 51 sum1=(sum1+1ll*(f[k-1][j]-f[k-1][j-1]+mod)*fac[n-j]%mod*inv[i-(k-1)]%mod*inv[n-j-(i-(k-1))])%mod; 52 for(int j=1;n-j>=m-i-1;j++) 53 sum2=(sum2+1ll*(g[1][j]-g[1][j-1]+mod)*fac[n-j]%mod*inv[m-i-1]%mod*inv[n-j-(m-i-1)])%mod; 54 ans=(ans+sum1*sum2)%mod; 55 } 56 printf("%lld\n",ans); 57 } 58 return 0; 59 }
View Code
这道题我在LOJ上WA的时候发现w数组开成了w[0][N],然而这样的码还能A掉BZ上的数据
感到十分震惊并认为其中有鬼23333
转载于:https://www.cnblogs.com/2017SSY/p/10291510.html
LOJ#2538. 「PKUWC2018」Slay the Spire相关推荐
- loj2538 「PKUWC2018」Slay the Spire 【dp】
题目链接 loj2538 题解 比较明显的是,由于强化牌倍数大于\(1\),肯定是能用强化牌尽量用强化牌 如果强化牌大于等于\(k\),就留一个位给攻击牌 所以我们将两种牌分别排序,企图计算\(F(i ...
- 「PKUWC2018」Slay the Spire
国际惯例不放题干 扯淡 其实题目翻译过来是杀戮尖塔,某steam上的卡牌游戏,我也曾热衷刷榜 题解 首先题目中要求的期望是假期望,结合题目中所给的阶乘就可以看出这其实是从$2*n$张牌中选择$m$张牌 ...
- LOJ#2542. 「PKUWC2018」随机游走
LOJ#2542. 「PKUWC2018」随机游走 题目描述 Solution 去过一个点集中所有节点的期望时间不好求,考虑min−maxmin-maxmin−max容斥,转化为求第一次到达某一个点集 ...
- LOJ 2537 「PKUWC2018」Minimax
BZOJ 5461. 线段树合并优化$dp$. 假设所有离散之后的权值$\in [1, m]$,对于一个点$x$它的权值是$i$的概率是$f(x, i)$,那么 1.假如这个点只有一个儿子$y$,那么 ...
- loj#2542. 「PKUWC2018」随机游走(MinMax容斥 期望dp)
题意 题目链接 Sol 考虑直接对询问的集合做MinMax容斥 设\(f[i][sta]\)表示从\(i\)到集合\(sta\)中任意一点的最小期望步数 按照树上高斯消元的套路,我们可以把转移写成\( ...
- loj#2541. 「PKUWC2018」猎人杀
传送门 思路太清奇了-- 考虑容斥,即枚举至少有哪几个是在\(1\)号之后被杀的.设\(A=\sum_{i=1}^nw_i\),\(S\)为那几个在\(1\)号之后被杀的人的\(w\)之和.关于杀了人 ...
- Loj #3111. 「SDOI2019」染色
Loj #3111. 「SDOI2019」染色 题目描述 给定 \(2 \times n\) 的格点图.其中一些结点有着已知的颜色,其余的结点还没有被染色.一个合法的染色方案不允许相邻结点有相同的染色 ...
- Loj #3055. 「HNOI2019」JOJO
Loj #3055. 「HNOI2019」JOJO JOJO 的奇幻冒险是一部非常火的漫画.漫画中的男主角经常喜欢连续喊很多的「欧拉」或者「木大」. 为了防止字太多挡住漫画内容,现在打算在新的漫画中用 ...
- LOJ#2230. 「BJOI2014」大融合
LOJ#2230. 「BJOI2014」大融合 题目描述 小强要在$N$个孤立的星球上建立起一套通信系统.这套通信系统就是连接$N$个点的一个树.这个树的边是一条一条添加上去的. 在某个时刻,一条边的 ...
- loj#2143. 「SHOI2017」组合数问题
loj#2143. 「SHOI2017」组合数问题 题目描述 Solution 考虑转化一下我们要求的东西. ∑i=0n(nkik+r)=∑i=0n(nki)[i≡r(modk)]\sum_{i=0} ...
最新文章
- 用上AI后,银行每年竟然能多赚1万亿美元丨麦肯锡最新调查报告
- python算法与程序设计基础第二版-算法与程序设计基础(Python版) - 吴萍
- 动态代理案例1:运用Proxy动态代理来增强方法
- Python虚拟环境virtualenv的安装与使用详解(转)
- PasswordEncoder详解
- Focal loss及其实现
- Shadow Map在DirectX9.0 SDK Sample 的实现方法
- MFC中 给基于CFormView的单文档添加背景图片
- POJ2083-Fractal
- android开发学习——day3
- mysql里的char和varchar
- 智能车学习(十四)——K60单片机GPIO学习
- ESP32核心原理图
- datasupport类删除_reiserfs文件系统反删除(Undelete)数据恢复操作的实践
- 领导力与团队管理上课笔记--上
- 完全教程 Aircrack-ng破解WEP、WPA-PSK加密利器[zz]
- MVP结合(RecycleView,Retorfit,GreenDao和EventBus)数据展示
- PhpStorm修改字体和主题
- 经典算法之贪心(Greedy)
- python期末大作业 邮箱小程序
热门文章
- 塔防三国志服务器维护时间,《塔防三国志》停服公告
- 百度排名靠前工具软件
- Pytorch踩坑记:赋值、浅拷贝、深拷贝三者的区别以及model.state_dict()和model.load_state_dict()的坑点
- 美国学生债务数据 csv_我如何摆脱学生债务陷阱,为什么其他美国人不那么幸运...
- nova evacuate功能分析
- html动态工艺流程,化工工艺动态流程图制作软件
- OpenGL FBO学习
- java实现word转换pdf并批量生成水印
- Javaweb安全——JSP Webshell
- seurat质控Warning: Feature names cannot have underscores (‘_‘), replacing with dashes (‘-‘)