acdream暴力专场中的优美暴力

F - 小晴天老师系列——苹果大丰收

Time Limit: 2000/1000MS (Java/Others)    Memory Limit: 128000/64000KB (Java/Others)

Problem Description

小晴天的后花园有好多好多的苹果树,某天,苹果大丰收~小晴天总共摘了M个苹果,我们假设苹果之间是不可分辨的。

为了保存苹果,小晴天买了N个一模一样的箱子,想要把苹果放进去,允许有的箱子是空的,请问小晴天有多少种不同的放法呢?

例如对于4个苹果,3个箱子,2+1+1和1+2+1和1+1+2 是同一种分法。

Input

多组数据,首先是一个正整数t(t<=100)表示数据的组数。

每组数据均包含二个整数M和N(1<=M,N<=10)。

Output

对于每组数据,输出一个整数,表示不同的放法数。

Sample Input

1
7 3

Sample Output

8

Hint

对于7个苹果,3个箱子

有7+0+0=6+1+0=5+2+0=4+3+0=5+1+1=4+2+1=3+2+2=3+3+1

这8种放法。

解法:十重for强力破解,为了避免重复,所以设定后面的箱子不能比前面的箱子少放苹果!纯暴力~

参考代码:

#include<stdio.h>
int main(void)
{
    int i,i1,i2,i3,i4,i5,i6,i7,i8,i9,T,M,N,z;

    scanf("%d",&T);
    while(T--){
        scanf("%d%d",&M,&N);
        for(z=1,i=0;i<M;i++){
            if(N==1 && i==M) z++;
            for(i1=i;N>1,i1<M;i1++){
                if(N==2 && i+i1==M) z++;
                for(i2=i1;N>2,i2<M;i2++){
                    if(N==3 && i+i1+i2==M) z++;
                    for(i3=i2;N>3,i3<M;i3++){
                        if(N==4 && i+i1+i2+i3==M) z++;
                        for(i4=i3;N>4,i4<M;i4++){
                            if(N==5 && i+i1+i2+i3+i4==M) z++;
                            for(i5=i4;N>5,i5<M;i5++){
                                if(N==6 && i+i1+i2+i3+i4+i5==M) z++;
                                for(i6=i5;N>6,i6<M;i6++){
                                    if(N==7 && i+i1+i2+i3+i4+i5+i6==M) z++;
                                    for(i7=i6;N>7,i7<M;i7++){
                                        if(N==8 && i+i1+i2+i3+i4+i5+i6+i7==M) z++;
                                        for(i8=i7;N>8,i8<M;i8++){
                                            if(N==9 && i+i1+i2+i3+i4+i5+i6+i7+i8==M) z++;
                                            for(i9=i8;N>9,i9<M;i9++){
                                                if(N==10 && i+i1+i2+i3+i4+i5+i6+i7+i8+i9==M) z++;
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
        printf("%d\n",z);
    }
    return 0;
}
时间: 2024-11-03 19:04:24

acdream暴力专场中的优美暴力的相关文章

Codeforces 839D Winter is here - 暴力 - 容斥原理

Winter is here at the North and the White Walkers are close. John Snow has an army consisting of n soldiers. While the rest of the world is fighting for the Iron Throne, he is going to get ready for the attack of the White Walkers. He has created a m

Wireshark黑客发现之旅(4)——暴力破解

Wireshark黑客发现之旅(4)——暴力破解 聚锋实验室 · 2015/08/10 10:33 作者:Mr.Right.K0r4dji 申明:文中提到的攻击方式仅为曝光.打击恶意网络攻击行为,切勿模仿,否则后果自负. 一.个人观点 暴力破解,即用暴力穷举的方式大量尝试性地猜破密码.猜破密码一般有3种方式: 1.排列组合式:首先列出密码组合的可能性,如数字.大写字母.小写字母.特殊字符等:按密码长度从1位.2位……逐渐猜试.当然这种方法需要高性能的破解算法和CPU/GPU做支持. 2.字典破解

cogs 1114. [郑州培训2012] 暴力摩托

★★☆   输入文件:motor.in   输出文件:motor.out   简单对比 时间限制:1 s   内存限制:128 MB MOTOR 题目描述 Fish最喜欢玩暴力摩托,一个通宵之后,总算过了全关!正当他为自己的成绩洋洋得意的时候却发现居然还有一个特别的附加关!Fish虽然累得眼睛都睁不开了,但是他还是决定再试一试! 这一关与以前的关不同,包含有N个站,之间连了M条双向的通路!但每条路都规定了一个Speed值,在这条路上必须以这个速度前进!所以在前进的时候要频繁的调整速度,这对鱼类来

bzoj 2241: [SDOI2011]打地鼠 暴力

2241: [SDOI2011]打地鼠 Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: 749  Solved: 488[Submit][Status][Discuss] Description 打地鼠是这样的一个游戏:地面上有一些地鼠洞,地鼠们会不时从洞里探出头来很短时间后又缩回洞中.玩家的目标是在地鼠伸出头时,用锤子砸其头部,砸到的地鼠越多分数也就越高. 游戏中的锤子每次只能打一只地鼠,如果多只地鼠同时探出头,玩家只能通过多次挥舞锤子的方式打掉

2017.5.26暴力赛解题报告

预计分数:T1:40AC+60TLE T2:40AC+60TLE   T3:10AC+90TLE 总分=90 实际分数:T1:100AC+0TLE T2:80AC+20TLE   T3:20AC+80TLE 总分=200 感想:数据水的一逼!! 题目实际难度: T1:提高/提高+ T2:提高+ T3:提高+/省选- 我眼中的难度 T1:普及 T2:普及- T3:入门难度 2039. 树的统计 ★★   输入文件:counttree.in   输出文件:counttree.out   简单对比 时

改进的SMS4算法的差分故障与暴力联合攻击

(1.中国科学院研究生院,北京100049) 摘要SMS4是在国内正式使用并于2006年公布的第一个用于无线局域网的商用分组密码算法.文中研究了SMS4对差分故障和暴力联合攻击的安全性.攻击使用随机故障模型,提出一种简化的轮函数差分故障攻击与暴力攻击相结合的方法.用该攻击方法不到1分钟就可以完全恢复出128位的种子密钥.文章结果证实SMS4密码算法很难防范利用差分故障和暴力攻击联合的攻击.为了避免这类攻击,在SMS4密码的实际使用中必须对轮函数相关的加密设备提供保护,从而使得攻击者无法使用故障诱

POJ 2029 DP || 暴力

在大矩形中找一个小矩形 使小矩形包含的*最多 暴力或者DP  水题 暴力: #include "stdio.h" #include "string.h" int main() { int n,m,w,i,s,t,j,k,l,ans,sum,x,y; int map[101][101]; while (scanf("%d",&w)!=EOF) { if(w==0) break; scanf("%d%d",&n,&

【算法】二分查找与暴力查找(白名单过滤)

二分查找与暴力查找. 如果可能,我们的测试用例都会通过模拟实际情况来展示当前算法的必要性.这里该过程被称为白名单过滤.具体来说,可以想象一家信用卡公司,它需要检查客户的交易账号是否有效.为此,它需要: 将客户的账号保存在一个文件中,我们称它为白名单: 从标准输入中得到每笔交易的账号: 使用这个测试用例在标准输出中打印所有与任何客户无关的账号,公司很可能拒绝此类交易. 在一家有上百万客户的大公司中,需要处理数百万甚至更多的交易都是很正常的.为了模拟这种情况,我们提供了文件largeW.txt(10

Java--算法特训(1)暴力破解和实用性优先

第一节课的主要内容:暴力破解与实用性优先 (1)暴力破解在大赛及企业应用中的重要性 (2)暴力破解中的实用性原则 (3)逆向解法 (4)枚举法 题目一: 美国数学家维纳(N.Wiener)智力早熟,11岁就上了大学.他曾在1935~1936年应邀来中国清华大学讲学. 一次,他参加某个重要会议,年轻的脸孔引人注目. 于是有人询问他的年龄,他回答说: "我年龄的立方是个4位数.我年龄的4次方是个6位数.这10个数字正好包含了从0到9这10个数字,每个都恰好出现1次." 请你推算一下,他当时