[NOIP2016]组合数问题 17.5.21 40分

★   输入文件:problem.in   输出文件:problem.out   简单对比

时间限制:1 s  
内存限制:512 MB

【题目描述】

【输入格式】

从文件中读入数据。

第一行有两个整数t, k,其中t代表该测试点总共有多少组测试数据,k的意义见【问题描述】。

接下来t行每行两个整数n, m,其中n, m的意义见【问题描述】。

【输出格式】

输出到文件中。

t行,每行一个整数代表所有的0<=i<=n,0<=j<=min(i,m)中有多少对(i, j)满足C(j,i)是k的倍数。

【样例1输入】

1 2
3 3

【样例1输出】

1

【提示】

在所有可能的情况中,只有C(1,2)是2的倍数。

【样例2输入】

2 5
4 5
6 7

【样例2输出】

0
7

【来源】

打个暴力,骗分40,正解嘛,先不看了,好像用dp:

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<algorithm>
 4 #include<cmath>
 5 #define ll long long
 6
 7 using namespace std;
 8
 9 inline void read (int &x)
10 {
11     char c=getchar();
12     x=0;
13     while(c<‘0‘||c>‘9‘)c=getchar();
14     while(c>=‘0‘&&c<=‘9‘)x=x*10+c-‘0‘,c=getchar();
15 }
16
17 inline ll C(int a,int b)
18 {
19     ll Fz=1,Fm=1;
20     if(a==1)
21         return b;
22     for(int i=(a+1);i<=b;i++)
23         Fz*=i;
24     for(int i=1;i<=(b-a);i++)
25         Fm*=i;
26     if(Fz%Fm==0)
27         return Fz/Fm;
28     else return 1;
29 }
30 int main()
31 {
32     freopen("problem.in","r",stdin);
33     freopen("problem.out","w",stdout);
34     int T,n,m,k;
35
36     read(T);
37     read(k);
38
39     while(T--)
40     {
41         read(n);
42         read(m);
43         int Answer=0;
44
45         for(int i=1;i<=n;i++)
46             for(int j=1;j<=min(i,m);j++)
47             {
48                 if(!(C(j,i)%k))
49                     Answer++;
50             }
51
52         printf("%d\n",Answer);
53     }
54     return 0;
55 }
时间: 2024-11-06 01:03:29

[NOIP2016]组合数问题 17.5.21 40分的相关文章

史上最难PHPer笔试题,40分就能月薪过万!附答案

请批判性的学习,欢迎大牛指正错误 1.有关PHP字符串的说法,不对的是:A.如果一个脚本的编码是 ISO-8859-1,则其中的字符串也会被编码为 ISO-8859-1.B.PHP的字符串在内部是字节组成的数组,用花括号访问或修改字符串对多字节字符集很不安全.C.substr().strpos().strlen().htmlentities() 处理字符串时依据的编码方式是相同的.D.一个布尔值 Boolean 的 true 被转换成 string 的 " 1 ",false 被转换成

NOIP模拟17.9.21

NOIP模拟17.9.21 1 任务安排manage.in/.out/.cpp1.1 问题描述你有N 个工作,同一时刻只能做一个任务, 其中每个工作有其所需时间, 及完成的Deadline(截止时间), 问要完成所有工作, 最迟要从什么时候开始.你最早可以从时间0 开始工作.1.2 输入格式第一行一个整数N,表示任务数量接下来n 行,每行两个整数,Ti; Si,分别表示该任务的持续时间和截止时间.1.3 输出格式输出一个整数,表示最晚的开始时间,如果不能完成,输出-1.1.4 样例输入43 58

读&ldquo;40 分,60 分,90 分&rdquo;

原文链接: http://mp.weixin.qq.com/s?__biz=MzA5MjYyNzY1OQ==&mid=2650901947&idx=1&sn=89af64d3b0dec01587f14aab15e62b9a#rd   40 分,60 分,90 分 原创 2016-05-27 汪海 汪海的实验室 背景 最近在微博上看到有人说,找工作太难了,面试官要求还高,才大三就问会不会这个框架那个框架的,并且表示平时项目机会少, jQuery Bootstrap 这种基础框架基本够

7-11 字典合并 (40 分)

7-11 字典合并 (40 分) 字典合并.输入用字符串表示两个字典,输出合并后的字典,字典的键用一个字母或数字表示.注意:1和'1'是不同的关键字! 输入格式: 在第一行中输入第一个字典字符串 在第二行中输入第二个字典字符串 输出格式: 在一行中输出合并的字典,输出按字典序."1"的ASCII吗为49,大于1,排序时1在前,"1"在后,其它的也一样. 输入样例1: 在这里给出一组输入.例如: {1:3,2:5} {1:5,3:7} 输出样例1: 在这里给出相应的输

3287 货车运输 2013年NOIP全国联赛提高组 40 分

3287 货车运输 2013年NOIP全国联赛提高组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题目描述 Description A 国有 n 座城市,编号从 1 到 n,城市之间有 m 条双向道路.每一条道路对车辆都有重量限制,简称限重.现在有 q 辆货车在运输货物,司机们想知道每辆车在不超过车辆限重的情况下,最多能运多重的货物. 输入描述 Input Description 第一行有两个用一个空格隔开的整数 n,m,表示 A 国有 n 座城市和

MVC 中@Html.DropDownListFor() 设置选中项 这么不好使 ? [问题点数:40分,结帖人lkf181]

http://bbs.csdn.net/topics/390867060 由于不知道错误原因在哪 我尽量把代码都贴出来吧:重点是:在 Controller 类里 我给 SelectListItem集合的 某项 Selected 赋值为TRUE 在视图中就应该 将该项选中吧?? 在我这怎么没还是呢? 没有任何项选中!!Controller 类: C# code ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 2

Java语法基础常见疑惑解答8,16,17,21图片补充

8. 16. 17. 21 原文地址:https://www.cnblogs.com/zzstdruan1707-4/p/9744448.html

noip2016 组合数问题

题目描述 组合数表示的是从n个物品中选出m个物品的方案数.举个例子,从(1,2,3) 三个物品中选择两个物品可以有(1,2),(1,3),(2,3)这三种选择方法.根据组合数的定 义,我们可以给出计算组合数的一般公式: 其中n! = 1 × 2 × · · · × n 小葱想知道如果给定n,m和k,对于所有的0 <= i <= n,0 <= j <= min(i,m)有多少对 (i,j)满足是k的倍数. 输入输出格式 输入格式: 第一行有两个整数t,k,其中t代表该测试点总共有多少

史上最难PHPer笔试题,40分就能月薪过万!

点击这里进入在线测试后获取评测分数和答案 1.有关PHP字符串的说法,不对的是: substr().strpos().strlen().htmlentities() 处理字符串时依据的编码方式是相同的. PHP的字符串在内部是字节组成的数组,用花括号访问或修改字符串对多字节字符集很不安全. 如果一个脚本的编码是 ISO-8859-1,则其中的字符串也会被编码为 ISO-8859-1. 一个布尔值 Boolean 的 true 被转换成 string 的 " 1 ",false 被转换成