| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1487 人关注过本帖
标题:[转帖]01年高中组奥赛复赛的题目
只看楼主 加入收藏
Alzer
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2005-4-29
收藏
 问题点数:0 回复次数:18 
[转帖]01年高中组奥赛复赛的题目
求算法

求算法

求算法

求算法

问题描述
将整数n分成k份,且每份不能为空,任意两份不能相同(不考虑顺序)。
例如:n=7,k=3,下面三种分法被认为是相同的。
1,1,5; 1,5,1; 5,1,1;
问有多少种不同的分法。
输入:n,k (6<n<=200,2<=k<=6)
输出:一个整数,即不同的分法。

样例
输入: 7 3
输出:4 {四种分法为:1,1,5;1,2,4;1,3,3;2,2,3;}


求算法```   
搜索更多相关主题的帖子: 奥赛 高中组 复赛 题目 转帖 
2005-04-30 09:18
流浪者
Rank: 1
等 级:新手上路
帖 子:74
专家分:0
注 册:2005-4-24
收藏
得分:0 
和我的问题差不多呀!! 把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法 有人给我回了 你可以看看!!!!

我因我之为我而不同凡响~~~
2005-04-30 10:01
乌鸦丘比特
Rank: 1
等 级:新手上路
威 望:2
帖 子:625
专家分:0
注 册:2004-7-19
收藏
得分:0 
同学是高中生吗?
这是组合数学的问题吧,把N个一样的球排成1排,用K-1块隔板来分割,有几种分法,把分法中有相同数量的份数减掉,然后再除以K!应该就可以了

我喜欢创造,一只扑腾着翅膀向天空飞翔的乌鸦
2005-04-30 12:06
simpley
Rank: 1
等 级:新手上路
帖 子:262
专家分:0
注 册:2005-2-23
收藏
得分:0 
不好办,没有乌鸦丘比特 说的那么容易

myQQ::445750010
2005-04-30 17:43
heiguo55
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2005-4-18
收藏
得分:0 
n
1 1 n-2
n-3 1 2
n-4 13 22
n-5 14 23
n-6 15 24 33
n-7 16 25 34
n-8 17 26 35 44
n-9 18 27 36 45
你们看 看什么规律啊~~~~
2005-04-30 19:57
乌鸦丘比特
Rank: 1
等 级:新手上路
威 望:2
帖 子:625
专家分:0
注 册:2004-7-19
收藏
得分:0 
楼上的请回答一下你是否是高中生好吗?
这是NOIP的题目吗?


我喜欢创造,一只扑腾着翅膀向天空飞翔的乌鸦
2005-04-30 21:31
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
收藏
得分:0 
计算有几种分法难度到不大,仅是个数学问题,如何输出所有的符合要求的数列才是才能算是这个题的精华。哈哈,这个怕是神也做不出来吧??不信神试试。乌鸦也可试试吗

九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2005-05-01 21:43
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
收藏
得分:0 

刚才写了程序验证了一下,2楼所说的回贴是错的,输入: 15 5 1 1 1 1 11 1 1 1 2 10 1 1 1 3 9 1 1 1 4 8 1 1 1 5 7 1 1 1 6 6 1 1 2 5 6 1 1 3 4 6 1 2 2 4 6 1 2 3 3 6 1 2 3 4 5 1 2 4 4 4 1 3 4 3 4 2 3 3 3 4 3 3 3 3 3 //不保证正确^_^,大家可以验证看看 而2楼所说的只有 7 种,显然是错的。


九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2005-05-01 21:57
simpley
Rank: 1
等 级:新手上路
帖 子:262
专家分:0
注 册:2005-2-23
收藏
得分:0 
test(int m,int n){int i,j,k,n1=n-1,a[10],s=0;
for(j=1;j<n;j++){a[j]=1;s+=a[j];}a[n]=m-s;
do{i=0;
while(a[n]>=a[n1]){a[n1]++;for(j=1;j<=n;j++)printf("%d,",a[j]);printf("\n");}
do{i++;}while(i<n1&&a[n1]-a[n1-i]<=1);
k=a[n1-i]++;for(j=n1-i;j<n1;j++)a[j]=k;s=(i+1)*k;a[n]=m-s;}while(i<n1);
main(){int m,n;
scanf("%d%d",&m,&n);test(m,n);getch();}
没有测试,谁可以帮我测试一下。

myQQ::445750010
2005-05-02 08:51
simpley
Rank: 1
等 级:新手上路
帖 子:262
专家分:0
注 册:2005-2-23
收藏
得分:0 
一直没人帮我验证,只有下载了一个TURBOC自己来试,修改后的程序如下: test(int m,int n){int i,j,k,n1=n-1,a[10],s=0,num=0; for(j=1;j<n;j++){a[j]=1;s+=a[j];}a[n]=m-s; do{i=0; while(a[n]>=a[n1]){for(j=1;j<=n;j++)printf("%d,",a[j]); a[n1]++;a[n]--;num++;printf("\\");}s=0; do{i++;}while(i<n1&&a[n1]-a[n1-i]<=1); k=++a[n1-i];for(j=n1-i;j<=n1;j++)a[j]=k; for(j=1;j<n;j++) s+=a[j];a[n]=m-s;}while(i<n1); printf("%d",num);} main(){int m,n; scanf("%d%d",&m,&n);test(m,n);getch();} 测试通过。15 5时应有30种结果。 楼上knocker说的计算有几种分法难度到不大,仅是个数学问题 我觉得打出结果难度不大,从数学上算出分法很不好算。

myQQ::445750010
2005-05-02 19:10
快速回复:[转帖]01年高中组奥赛复赛的题目
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.084080 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved