【ATcode】たくさんの数式Many Formulas(思维)

    xiaoxiao2022-07-07  185

    题目链接

    题目大意:现在给你一个数字,让你任意切割,然后就是切割出来的数字加起来,求得就是得到的和,

    思路:看队友的思路后懂的,这个题目的话,就是把一个字符串,然后进行0 1的分割,利用二进制就可以实现所有的不重复的切割了,0的时候不切割,1的时候切割,

    代码:

    #include<iostream> #include<algorithm> #include<cstring> #include<cstdio> #define ll long long using namespace std; char a[15]; int main() { scanf("%s",a); ll ans=0; int len=strlen(a); int n=1<<(len-1); for(int i=0;i<n;i++) { ll t=a[0]-'0'; for(int j=0;j<len;j++) { if(j==len-1||i&(1<<j)) { ans+=t; t=0; if(j==len-1) break; } t=t*10+a[j+1]-'0'; } } printf("%lld\n",ans); }

     

    最新回复(0)