bzoj1436: Poi2003 Trinomial
来源:互联网 发布:数据分析主要分析哪些 编辑:程序博客网 时间:2024/05/17 07:03
传送门
神题啊。
答案=C(n*2,m)*(m mod 2+1) mod 3.
证明挖坑。
update:来填坑啦 根据答案我们可以推断求解过程
首先我们又相邻的两个位置来表示一个多项式中到底是乘1,x,x^2
在两个数中取y个表示当前项乘的是x^y
显然这样我们可以所有合法解,总共C(n*2,m)种
但是会有重复情况。
因为我们枚举1的时候会将其计算两次
我们考虑去重。
首先我们假设有z个位置乘x
我们可以发现z,m一定奇偶性相同。
同时我们发现,2^奇数 mod 3=2,2^偶数次 mod 3=1
所以每种方案的重复次数在mod3意义下是同余的。
答案就是C(n*2,m)*inv(2^(m%2)) mod 3
又因为inv(1)=1,inv(2)=2
所以答案就是C(n*2,m)*2^(m%2) mod 3
然后后面的东西等价于(m%2+1)
于是我们就证明了这个公式。
#include<cmath>#include<cstdio>#include<cstdlib>#include<cstring>#include<iostream>#include<algorithm>#define ll long longusing namespace std;int c[5][5],T;ll n,m;int C(ll x,ll y){ if (!x&&!y) return 1; return c[x%3][y%3]*C(x/3,y/3)%3;}int main(){ c[0][0]=1; c[1][0]=1; c[1][1]=1; c[2][0]=1; c[2][1]=2; c[2][2]=1; scanf("%d",&T); for (int i=1;i<=T;i++){ scanf("%lld %lld",&n,&m); printf("%d\n",C(n*2,m)*(m%2+1)%3); }}
阅读全文
0 0
- bzoj1436: Poi2003 Trinomial
- bzoj2430: [Poi2003]Chocolate
- BZOJ2612 [Poi2003]Sums
- 【bzoj2430】 [Poi2003]Chocolate
- BZOJ 2430 Poi2003 Chocolate 贪心
- BZOJ 2613 Poi2003 Shuffle 数论
- Java excel表 导出 POI2003
- [Poi2003 ][bzoj 2601]MAL猴子捞月
- bzoj1436 小K的农场(差分约束+spfa判环)
- Java学习笔记-《Java程序员面试宝典》-第四章基础知识-4.1基本概念(4.1.13)
- phpstudy 在 linux下 安装和操作
- 网络基础知识
- 润乾V5如何在工具栏中增加总记录数和本页记录数显示
- 我想对所有新手程序员说些肺腑之言
- bzoj1436: Poi2003 Trinomial
- SQLAlchemy 连接 MySQL 数据库(一)
- 静态顺序表(C语言实现)
- BZOJ4720(NOIP2016)[换教室]题解--期望DP
- Mysql(Linux服务器)root用户密码忘记重置方法
- 从零开始写OJ---评测姬安全
- 如何使用插件 Swiper
- 频率滤波器
- getcomputedstyle、currentStyle、style