SDUT3143:Combinatorial mathematics(组合数学)

题意:传送门

题目描述

As you know, shadow95 is pretty good at maths, especially combinatorial mathematics. Now, he has made a problem for you. We call a subset which exactly has r elements as a "r-subset".For example, {1,2,5} is a 3-subset(r=3) of {1,2,3,4,5}. Now, your task is to form all the r-subset of {1,2,...,n}, then output them in lexicographic order(字典序).

输入

The input file ends by EOF.

For each test case, there are two integer n,r.(1 <= r < n <= 20)

输出

First output the case number, then output all the r-subset of {1,2,...,n} in lexicographic order.

Each case seperates by a blank line.

示例输入

3 2
3 1

示例输出

Case #1:
1 2
1 3
2 3

Case #2:
1
2
3题目很简单,代码很快就敲出来了,令人伤心的是PE无数遍,因为之前的题都没卡那么严,遇到这种输出格式错误慌了.......每组数据之后有一个空行,但是最后一组数据没有空行,如果只输入一组n,m,那么之后不需要打印空行。具体请看代码:
#include <iostream>
#include <algorithm>
#include <math.h>
#include <map>
#include <queue>
#include <stack>
#define inf 0x3f3f3f3f
#include <stdio.h>
#include <string.h>
typedef long long ll;
#define mod 10000007
#define eps 1e-9
using namespace std;
int n,r,a[30];
void dfs(int k,int step)
{
    a[step]=k;    if(step>r) return ;
    if(step==r)
    {
        for(int i=1; i<=step; i++)
        {
            if(i==1) printf("%d",a[i]);
            else printf(" %d",a[i]);
        }
        printf("\n");
    }
    for(int i=k+1; i<=n; i++)
        dfs(i,step+1);
}
int main()
{
    int K=0;
    while(scanf("%d%d",&n,&r)!=EOF)
    {
        if(K>=1) printf("\n");//这样能避免PE
        printf("Case #%d:\n",++K);
        for(int i=1; i<=n-r+1; i++)
            dfs(i,1);
    }
    return 0;
}
时间: 2024-10-11 12:48:24

SDUT3143:Combinatorial mathematics(组合数学)的相关文章

高数重要极限证明原创中英文对照版

重要极限 Important Limit 作者 赵天宇 Author:Panda Zhao 我今天想在这里证明高等数学中的一个重要极限: Today I want to prove animportant limit of higher mathematics by myself: 想要证明上述极限,我们先要去证明一个数列极限: If we want to give evidence ofthe limit, first of all, there are a limit of a series

【转】科大校长给数学系学弟学妹的忠告&amp;本科数学参考书

1.老老实实把课本上的题目做完.其实说科大的课本难,我以为这话不完整.科大的教材,就数学系而言还是讲得挺清楚的,难的是后面的习题.事实上做1道难题的收获是做10道简单题所不能比的. 2.每门数学必修课至少要看一本参考书,尽量做一本习题集. 3.数学分析别做吉米,除非你太无聊,推荐北大方企勤的习题集.此外注意一下有套波兰的数学分析习题集,是不是搞得到中文或英文版. 4.线性代数推荐普罗斯库列科夫的<<线性代数习题集>>和法捷耶夫的<<高等代数习题集>>.莫斯科

github开源项目-算法实现之路

算法编程 目录(?)[-] 挑战算法之路 Way to Algorithm 目录页 <挑战算法之路>的源代码可以从GitHub下载,网址链接:点击打开链接 也可以从GoogleCode下载,网址链接:点击打开链接 挑战算法之路 Way to Algorithm 西安交通大学计算机系 林荣彬 电子科技大学信软学院 NEWPLAN 目录页 第2版声明 ..........................................................................

【数学】【其他】数学中常用符号

写在前面 对于数学中的一些符号的解释 整理自网络 持续更新 来源标注为主要来源,个人整理的部分很多 目录 Δ和δ ζ η Θ和θ λ μ Ο Π和π ∑和σ Φ和φ ψ Ω和ω MOD ≡ | ∫  ∮ n! !n Δ和δ /'delt?/ Alt+小键盘42660 Alt+小键盘42692 Δ在数学中,在一元二次方程ax2+bx+c == 0(a≠0)或二次函数y == ax2+bx+c(a≠0)中代表b2-4ac Δ在物理学中,表示物理量的变化 δ在数学和科学,表示变数的变化 δ也表示数学中

计算机会议排名等级

http://blog.sina.com.cn/s/blog_9c411c310102vs2g.html 附件是计算机领域的学术会议等级排名情况,分为A+, A, B, C, L 共5个档次.其中A+属于顶级会议,基本是这个领域全世界大牛们参与和关注最多的会议.国内的研究者能在其中发表论文的话,是很值得骄傲的成就.A类也是非常好的会议了,尤其是一些热门的研究方向,A类的会议投稿多录用率低,部分A类会议影响力逐步逼近A+类会议.B类的会议分两种,一种称为盛会级,参与的人多,发表的论文也多,论文录用

SCI&amp;EI 英文PAPER投稿经验【转】

英文投稿的一点经验[转载] From: http://chl033.woku.com/article/2893317.html 1. 首先一定要注意杂志的发表范围, 超出范围的千万别投,要不就是浪费时间;另外,每个杂志都有他们的具体格式要求,一定要按照他们的要求把论文写好,免得浪费时间,前些时候,我的一个同事向一个著名的英文杂志投稿,由于格式问题,人家过两个星期就退回来了,而且说了很多难听的话,说投稿前首先就应该看清楚他们的格式要求:2. 论文写作一定要言简意赅,特别是摘要,引言和结论部分,特别

[leetcode-634-Find the Derangement of An Array]

In combinatorial mathematics, a derangement is a permutation of the elements of a set, such that no element appears in its original position. There's originally an array consisting of n integers from 1 to n in ascending order, you need to find the nu

[LeetCode] Find the Derangement of An Array 找数组的错排

In combinatorial mathematics, a derangement is a permutation of the elements of a set, such that no element appears in its original position. There's originally an array consisting of n integers from 1 to n in ascending order, you need to find the nu

634. Find the Derangement of An Array

In combinatorial mathematics, a derangement is a permutation of the elements of a set, such that no element appears in its original position. There's originally an array consisting of n integers from 1 to n in ascending order, you need to find the nu