help!输出有问题!求大佬!

P2036 [COCI2008-2009 #2] PERKET

@[Wangyuqi2010](/user/1016748) ```cpp #include<iostream> #include<cmath> using namespace std; int ss[12],bb[12]; int s=1,b,minn=1e+5,n;//p2036 //------- string to(int num){ string str; while(num>0){ int k=num%2; num/=2; str+=char('0'+k); } int len=str.length(); if(len>=n) ; else{ int k=n-len; for(int i=1;i<=k;i++){ str+='0'; } } return str; }//转二进制 void kkk(int k){//暴搜 子集枚举 string st=to(k); int len=st.length(); for(int i=0;i<len;i++){//(判断状态) if(st[i] == '1'){ s*=ss[i]; b+=bb[i]; } } } int main(){ cin>>n; for(int i=0;i<n;i++){ cin>>ss[i]>>bb[i]; }//输入 for(int U=(1<<n)-1;U>0;U--){ s=1,b=0; kkk(U); minn=min(minn,(int)abs(s-b)); } //枚举 cout<<minn; return 0; } ```
by __LYC__qwq @ 2024-03-02 19:39:32


```cpp str='0'+str; ``` 改成 ```cpp str+='0' ``` , ```cpp if(st[i]){ } ``` 改成 ```cpp if(st[i] == '1'){ } ``` , ss, bb是零下标 ```cpp minn=min(minn,(int)abs(ss-bb)); ``` 改成 ```cpp minn=min(minn,(int)abs(s-b)); ```
by __LYC__qwq @ 2024-03-02 19:42:37


```cpp 1>>n-1 ``` 改成 ```cpp (1<<n)-1 ```
by __LYC__qwq @ 2024-03-02 19:47:50


谢谢大佬 @[__LYC__qwq](/user/983647)
by Wangyuqi2010 @ 2024-03-02 20:46:54


|