AHOI2005 矿藏编码 发表于 2018-09-03 | 分类于 各省省选 | 字数统计: 161 字 题目链接 题解标准的递归定义。按照递归定义处理即可。答案很大,要用int128或者double。12345678910111213141516171819202122232425262728293031#include <bits/stdc++.h>#define INF 2000000000using namespace std;typedef __int128 ll;int n;ll ans = 0;void init(){ scanf("%d", &n);}void get(ll d){ int p; scanf("%1d", &p); if(p == 0) ans += d * d; else if(p == 2){ for(int i = 0; i < 4; ++i) get(d >> 1); }}void solve(){ ll a = 1; for(int i = 1; i <= n; ++i) a *= 2ll; get(a); int num[50], len = 0; while(ans) num[++len] = ans % 10, ans /= 10; for(int i = len; i >= 1; --i) printf("%d", num[i]);}int main(){ init(); solve(); return 0;}
v1.5.2