小学方法为什么错了

P2320 [HNOI2006] 鬼谷子的钱袋

```c #include<bits/stdc++.h> using namespace std; long long a[100]; int mi(int a,int b){ int s=1; for(int i=1;i<=b;i++) s*=a; return s; } int main(){ long long m,k; cin>>m; for(int i=1;i<=100;i++){ if(mi(2,i)-1>=m){ k=i; break; } } cout<<k<<endl; for(int i=0;i<k-1;i++) a[i]=mi(2,i); if(mi(2,k)-1==m) a[k-1]=mi(2,k-1); else a[k-1]=m-mi(2,k-1)+1; sort(a,a+k); for(int i=0;i<=k-1;i++) cout<<a[i]<<" "; return 0; } ```
by 祠云 @ 2018-10-27 10:24:53


@[祠云](/space/show?uid=106880) 啊啊啊 还是wa了一个点 难受
by 祠云 @ 2018-10-27 10:25:22


@[Jameswood](/space/show?uid=52428) 大佬快来帮帮我
by 祠云 @ 2018-10-27 10:25:58


额,泥的函数为什么是 $int$ 类型的……
by Jameswood @ 2018-10-27 10:27:41


@[祠云](/space/show?uid=106880)
by Jameswood @ 2018-10-27 10:27:48


嗯? 不对吗???
by 祠云 @ 2018-10-27 10:29:29


@[Jameswood](/space/show?uid=52428)
by 祠云 @ 2018-10-27 10:29:59


泥的 $a[]$ 开的是 $longlong$ 啊
by Jameswood @ 2018-10-27 10:34:18


最大的问题:如5, 1、2、2是错的(只有1能重复),但显然会输出1、2、2.
by 01190220csl @ 2018-11-03 19:58:55


试下5 会有两个2
by 不便透露 @ 2019-02-12 18:39:07


上一页 |