26. 分组

★   输入文件:dataa.in   输出文件:dataa.out   简单对比
时间限制:1 s   内存限制:128 MB【问题描述】

现有 n 个学生, 要分成X1 ,X2 ,...,Xm ,共 m 组(m<=n, X1 ,X2 ,...,Xm 分别表示每组的学生人数),要求对于所有的i < j,Xi <= Xj ,共有多少种分组方案,求出分组方案。

【输入格式】

输入文件:dataa.in

只有一行:两个整数n,m(1<=n<=20 1<m<=10)

【输出格式】

输出文件:dataa.out

输出若干行,第一行是一个整数,表示分组方案数量.下面每行为一种分组方案,按字典序分组输出,每行的数与数之间用一个空格隔开。

【输入样例】

输入文件名: dataa.in

6 3

输出文件名: dataa.out


1 1 4 
1 2 3 
2 2 2

思路:爆搜可过。

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
int m,n,sum,ans;
int a[];
int anss[][] ;
void dfs(int sub){
if(sub==n+&&sum==m){
ans++;
for(int i=;i<=n;i++)
anss[ans][i]=a[i];
return ;
}
if(sub==n+&&sum!=m) return;
for(int i=a[sub-];i<=m;i++){
sum=sum+i;
a[sub++]=i;
dfs(sub);
sub--;
sum=sum-i;
}
}
int main(){
freopen("dataa.in","r",stdin);
freopen("dataa.out","w",stdout);
scanf("%d%d",&m,&n);
a[]=;
dfs();
cout<<ans<<endl;
for(int i=;i<=ans;i++){
for(int j=;j<=n;j++)
cout<<anss[i][j]<<" ";
cout<<endl;
}
return ;
}

cogs 26. 分组的更多相关文章

  1. elasticsearch 基础 语法总结

    1. es 使用 restful 风格的 api 备注: es 的 api  格式  基本是这个样     请求方式    /索引名/文档名/id?参数   ,但是 还有 很多不是这样的 请求,比如 ...

  2. mysql--笔记1

    今日内容介绍1.MySQL数据库2.SQL语句=========================================================1 数据库概念 1.1: 什么是数据库 ...

  3. SQL Server 动态行转列(参数化表名、分组列、行转列字段、字段值)

    一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 实现代码(SQL Codes) 方法一:使用拼接SQL,静态列字段: 方法二:使用拼接SQL, ...

  4. C#开发微信门户及应用(26)-公众号微信素材管理

    微信公众号最新修改了素材的管理模式,提供了两类素材的管理:临时素材和永久素材的管理,原先的素材管理就是临时素材管理,永久素材可以永久保留在微信服务器上,微信素材可以在上传后,进行图片文件或者图文消息的 ...

  5. 按年、季度、月分组&&计算日期和时间的函数

    Mysql 按年.季度.月分组 按月度分组: select DATE_FORMAT(i.created_at, '%Y-%m月')...................GROUP BY DATE_FO ...

  6. 扩展GridView控件——为内容项添加拖放及分组功能

    引言 相信大家对GridView都不陌生,是非常有用的控件,用于平铺有序的显示多个内容项.打开任何WinRT应用或者是微软合作商的网站,都会在APP中发现GridView的使用.“Tiles”提供了一 ...

  7. iOS 注释的5要3不要和编码规范的26个方面

    注释 代码注释,可以说是比代码本身更重要.这里有一些方法可以确保你写在代码中的注释是友好的: 不要重复阅读者已经知道的内容 能明确说明代码是做什么的注释对我们是没有帮助的. // If the col ...

  8. python实现简易数据库之三——join多表连接和group by分组

    上一篇里面我们实现了单表查询和top N查询,这一篇我们来讲述如何实现多表连接和group by分组. 一.多表连接 多表连接的时间是数据库一个非常耗时的操作,因为连接的时间复杂度是M*N(M,N是要 ...

  9. Linq分组功能

    Linq在集合操作上很方便,很多语法都借鉴自sql,但linq的分组却与sql有一定的区别,故整理发布如下. 1.  Linq分组 分组后以Key属性访问分组键值. 每一组为一个IEnumberAbl ...

随机推荐

  1. Java transientkeyword使用小记

    1. transient的作用及用法 我们都知道一个对象仅仅要实现了Serilizable接口,这个对象就能够被序列化,java的这样的序列化模式为开发人员提供了非常多便利.我们能够不必关系详细序列化 ...

  2. A. Ilya and Diplomas( Codeforces Round #311 (Div. 2) )

    A. Ilya and Diplomas time limit per test 1 second memory limit per test 256 megabytes input standard ...

  3. thinkphp5项目--个人博客(三)

    thinkphp5项目--个人博客(三) 项目地址 fry404006308/personalBlog: personalBloghttps://github.com/fry404006308/per ...

  4. List methods

    Python provides methods that operate on lists. For example, append adds a new element to the end of ...

  5. BZOJ 1024 SCOI2009 生日快乐 暴搜

    思路:eng...按照题意搜就好了 (一定要注意题面的n<=10--) 枚举断点...反正n<=10不怂 //By SiriusRen #include <cstdio> #i ...

  6. yarn平台的任务调度和执行过程

  7. js一些常用方法

    string 增加 IsNullorEmpty : String.prototype.IsNullOrEmpty = function (r) {    if (r === undefined || ...

  8. sql server 中查询数据库下有多少张表以及同义词等信息

    --查询数据库有多少张表SELECT count(0) from sysobjects where xtype = 'u' 复制代码 解释:sysobjects系统对象表. 保存当前数据库的对象.如约 ...

  9. LeetCode(6)ZigZag Conversion

    题目如下: C++代码: #include <iostream> #include <string> using namespace std; class Solution { ...

  10. NodeJS学习笔记 (25)逐行读取-readline(ok)

    模块概览 readline是个非常实用的模块.如名字所示,主要用来实现逐行读取,比如读取用户输入,或者读取文件内容.常见使用场景有下面几种,本文会逐一举例说明. 文件逐行读取:比如说进行日志分析. 自 ...