| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2258 人关注过本帖, 1 人收藏
标题:acm 时间超限怎么办 好喜欢暴力破解法啊题目如下请看题
只看楼主 加入收藏
白衣柳相
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:142
专家分:168
注 册:2016-12-23
结帖率:82.61%
收藏(1)
已结贴  问题点数:20 回复次数:9 
acm 时间超限怎么办 好喜欢暴力破解法啊题目如下请看题

主页    讨论版    问题    名次    状态    统计
问题 L: 还是硬币问题
时间限制: 1 Sec  内存限制: 128 MB
提交: 183  解决: 30
状态
题目描述
给你无限多个1元的硬币和2元的硬币,还有5元的硬币。

现在要你从这3种硬币中取n个硬币,使得他们的价值和为m

输入
多组输入

每组n , m

 n < 1e6 , m <1e6

输出
总的方案数目

样例输入
2 3
样例输出
1
提示
  提交

我代码:
#include<stdio.h>
int main()
{
    int n,m;
    int x,y,z,i,k,j;
    i=0;
    while(scanf("%d%d",&n,&m)!=EOF)
    {
        for(x=0; x<=n; x++)
        {
            for(y=0; y<=n-x; y++)
            {
                for(z=0; z<=n-x-y; z++)
                {
                    if((x+y+z==n)&&(x+2*y+5*z==m))
                    {
                        i++;
                    }

                }
            }
        }
        printf("%d\n",i);
    }
    return 0;
}
搜索更多相关主题的帖子: include 暴力 价值 统计 
2017-01-07 15:10
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:5 
1*a + 2*b + 5*(n-a-b) = m
4*a + 3*b = 5*n - m
a + 3*(a+b) = 5*n-m
在a>=0的条件下,a+b 有 (5*n-m)/3 种可能
此外 a+b>=a,即 a+b >= 5*n-m - 3*(a+b),即 a+b >= (5*n-m)/4
结果就是 (5*n-m)/3 - (5*n-m-1)/4
以题目中的例子为例就是 7/3 - (7-1)/4 = 2 - 1 = 1
2017-01-07 16:47
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
感觉数学公式能一步到位~~~~

第一次先取1,然后求2和5的取法次数,然后下一次每次多取1,然后求2和5的取法次数,感觉其中的规律可以整合~~~~~

对哦,原来限制取银币个数了,我上说的是不限取银币的个数~~~二楼正解~

[此贴子已经被作者于2017-1-7 18:04编辑过]


[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-01-07 17:57
白衣柳相
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:142
专家分:168
注 册:2016-12-23
收藏
得分:0 
回复 2楼 rjsp
提交上去答案错误

什么最重要,学习!!!! 我要你们无话可说!我想要的东西自己去拿
2017-01-07 20:59
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:10 
这个应该能AC~~~

程序代码:
#include<stdio.h>
int main()
{
    int n=0;
    int m=0;

    while(scanf("%d%d",&n,&m)!=EOF)
    { 
        int x=0;
        int y=0;
        int z=0;
        int i=0;
        for (y=0;y<=n;y++)
        {
            x=(5*n-m-3*y)/4;
            z=n-x-y;
            if ((5*n-m-3*y)%4==0&&x>=0&&z>=0)
                i++;

        }

        printf("%d\n",i);
    }

    return 0;
}


[此贴子已经被作者于2017-1-7 23:24编辑过]


[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-01-07 23:21
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:5 
一步到位~~~~~~~~

程序代码:
#include<stdio.h>
int main()
{
    int n=0;
    int m=0;

    while(scanf("%d%d",&n,&m)!=EOF)
        printf("%d\n",5*n<m||n>m?0:m<2*n?(m-n)/4+1:(5*n-m)/12+1);

    return 0;
}
    


这是我自己推的,和二楼的还是有点差距~

[此贴子已经被作者于2017-1-8 02:53编辑过]


[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-01-08 02:37
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
今天C考,求及格~~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-01-08 08:24
白衣柳相
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:142
专家分:168
注 册:2016-12-23
收藏
得分:0 
献上大神分析造福后来有同样困惑的人,,,如果看不懂不要紧,,,,反正楼主我一知半解一楼最简单但是耗时长
图片附件: 游客没有浏览图片的权限,请 登录注册

什么最重要,学习!!!! 我要你们无话可说!我想要的东西自己去拿
2017-01-08 11:06
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:0 
以下是引用白衣柳相在2017-1-7 20:59:27的发言:

提交上去答案错误

帮我提交一下试试

程序代码:
#include <stdio.h>

int foo( int n, int m )
{
    if( 5*n-m < 0 )
        return 0;
    if( 5*n-m == 0 )
        return 1;

    return (5*n-m)/3 - (5*n-m-1)/4;
}

int main( void )
{
    for( int n,m; scanf("%d%d",&n,&m)==2; )
        printf( "%d\n", foo(n,m) );

    return 0;
}

2017-01-09 08:58
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
以下是引用九转星河在2017-1-8 08:24:07的发言:

今天C考,求及格~~



虽然你很厉害  但考试(尤其是笔试) 却未必能过  但是能比其他同学多打一些分数是谆谆的

DO IT YOURSELF !
2017-01-09 15:06
快速回复:acm 时间超限怎么办 好喜欢暴力破解法啊题目如下请看题
数据加载中...
 
   



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

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