社区讨论

关于暴力

P2347[NOIP 1996 提高组] 砝码称重参与者 5已保存回复 7

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
7 条
当前快照
1 份
快照标识符
@mm1ehbly
此快照首次捕获于
2026/02/25 10:13
2 周前
此快照最后确认于
2026/02/26 16:10
上周
查看原帖
本蒟蒻在写暴力的时候发现一件奇怪的事:
我用以下方法TLE了11#
CPP
#include<bits/stdc++.h>
using namespace std;
int main(){
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    int a1,a2,a3,a4,a5,a6;
    cin>>a1>>a2>>a3>>a4>>a5>>a6;
    bool f[1005]={0};
    int ans=-1;
    for(int i1=0;i1<=a1;i1++){
        for(int i2=0;i2<=a2;i2++){
            for(int i3=0;i3<=a3;i3++){
                for(int i4=0;i4<=a4;i4++){
                    for(int i5=0;i5<=a5;i5++){
                        for(int i6=0;i6<=a6;i6++){
                            int sum=i1+2*i2+3*i3+5*i4+10*i5+20*i6;
                            if(!f[sum]){
                                f[sum]=1;
                                ans++;
                            }
                        }
                    }
                }
            }
        }
    }
    cout<<"Total="<<ans;
}
但用以下代码AC了
CPP
#include<bits/stdc++.h>
using namespace std;
int main(){
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    int a1,a2,a3,a4,a5,a6;
    cin>>a1>>a2>>a3>>a4>>a5>>a6;
    bool f[1005]={0};
    for(int i1=0;i1<=a1;i1++){
        for(int i2=0;i2<=a2;i2++){
            for(int i3=0;i3<=a3;i3++){
                for(int i4=0;i4<=a4;i4++){
                    for(int i5=0;i5<=a5;i5++){
                        for(int i6=0;i6<=a6;i6++){
                            int sum=i1+2*i2+3*i3+5*i4+10*i5+20*i6;
                            f[sum]=1;
                        }
                    }
                }
            }
        }
    }
    int ans=0;
    for(int i=1;i<=1000;i++){
        ans+=f[i];
    }
    cout<<"Total="<<ans;
}
蒟蒻求教

回复

7 条回复,欢迎继续交流。

正在加载回复...