代码暴力思想

暴力

其实暴力这个思想是真的很简单,注意的地方就是要优化暴力的算法,做出合理的跳出,如果算法不优化的话可能会有超时的情况。
有一个例题OJ1613
题目描述:
在水木林浏览外网的时候看到有个国家只有1分,2分和3分三种硬币,水木林就跟头疼,毕竟水木林很有钱,卡上的数额兑换成硬币就会出现很多种情况 请你帮助水木林解决这个头疼的问题
输入
多组输入
输出
情况总数longlong范围内

样例输入
1
样例输出
1

解决代码

#include<iostream>
 
using namespace std;
 
const long long maxn = 1111111111;
int main(){
    int a = 1 , b = 2 , c = 3;
    long long sum = 0;
     
    int k;
     
    while(cin>>k){
        sum = 0;
         
        for(int i = 0; i <= k/3; i ++){
            for(int j = 0; j <= k/2; j ++){
                if(k - 3 * i - 2 * j >= 0) sum++;
                else break;
            }
        }
         
        cout<<sum<<endl;    
    }
    return 0;
}

如果你没写这个跳出的话,程序就会超时,不行的可以试一下,当然这个题也可以用dfs做
暴力就是直接遍历每一种情况,然后判断,得出正确的情况。
再来一个题嘛
对于长度为5位的一个01串,每一位都可能是0或1,一共有32种可能。它们的前几个是:

00000

00001

00010

00011

00100

请按从小到大的顺序输出这32种01串。
典型的一个暴力

再来一个吧
问题描述
  123321是一个非常特殊的数,它从左边读和从右边读是一样的。
  输入一个正整数n, 编程求所有这样的五位和六位十进制数,满足各位数字之和等于n 。
输入格式
  输入一行,包含一个正整数n。
输出格式
  按从小到大的顺序输出满足条件的整数,每个整数占一行。

这个题的思路就是可以遍历所有5位数和6位数,看哪些数满足情况。

发布了4 篇原创文章 · 获赞 0 · 访问量 137

猜你喜欢

转载自blog.csdn.net/weixin_44098364/article/details/104824576