NOIP2016D2T1组合数问题
来源:互联网 发布:大量淘宝买家手机号码 编辑:程序博客网 时间:2024/05/21 20:29
题目复制变成乱码0.0 这道题刚开始看上去是很懵很懵的,仔细读题,还是很懵。给的组合数公式基本上没什么用(应该都会算吧。。?) 然后自己手写了一遍C(1,1) 到C(5,5)发现组合数递推式f【i,j】=f【i-1】【j】+f【i-1】【j-1】;
然后我想这题不是水题就秒了嘛?开个long long算一下有几个能被整除,询问用二维前缀和维护,然而并不是这样。。开了long long还是爆了0.0(要是用python算一下会不会爆long long就可以了)。把每个组合数都%k不会影响到整除性。所以可以直接%k,然后就AC了。T1一定要注意细节!细节!还有0xb天就NOIP了~加油~嘘 希望ly的期中考试可以AC呢。
#include<bits/stdc++.h>using namespace std;const int MAXN=100005;long long zuhe[2003][2003];int xw[2003][2003],sum[2003][2003];int t,k,n,m;int main(){ memset(zuhe,0,sizeof(zuhe)); memset(xw,0,sizeof(xw)); memset(sum,0,sizeof(sum)); scanf("%d%d",&t,&k); for(int i=0;i<=2000;i++){ zuhe[i][1]=i; zuhe[i][0]=1; } for(int i=1;i<=2000;i++) for(int j=1;j<=i;j++){ zuhe[i][j]=(zuhe[i-1][j]%k)+(zuhe[i-1][j-1]%k); if(zuhe[i][j]%k==0){ xw[i][j]++; } } for(int i=1;i<=2000;i++) for(int j=1;j<=2000;j++){ sum[i][j]=sum[i-1][j]+sum[i][j-1]-sum[i-1][j-1]+xw[i][j]; } for(int i=1;i<=t;i++){ scanf("%d%d",&n,&m); if(m>n)m=n; printf("%d\n",sum[n][m]); } return 0;}
阅读全文
0 0
- noip2016D2T1 组合数问题
- NOIP2016D2T1组合数问题
- [NOIP2016D2T1]组合数问题
- 一道组合数问题
- 组合数问题
- NYOJ 组合数问题
- 数的组合问题
- NOIP2016day2t1 组合数问题
- 组合数问题
- [NOIP2016] 组合数问题
- NOIP2016组合数问题
- P2822 组合数问题
- noip2016组合数问题
- NOIP2016组合数问题
- 组合数问题
- [NOIP2016]组合数问题
- 组合数问题(NOIP2016)
- 组合数问题
- Spring 关于bean的获取以及自定义注解的起始注入和获取
- kickstart和dhcp
- 搜索学习基础--倒排索引的过程解读
- PLSQL客户端常用快捷键---工具类
- 重温数据结构:哈希 哈希函数 哈希表
- NOIP2016D2T1组合数问题
- 手机验证码平台,怎么发送手机验证码,php开发手机验证码短信接口功能
- 加酒店logo--改app图片
- 铁血军魂:所有的痛苦,都是CBK精英成长蜕变的肥料
- Keil MDK中的Code, RO-data , RW-data, ZI-data分别代表什么意思?(转)
- HDU
- Android-ViewFlipper的滑动与子视图中item点击的冲突解决
- 随机排序算法
- 从零开始学Python学习笔记---之--pandas序列部分