用火柴棍拼出最大的数,思维题,最后发现暴力1e7刚刚不会超时。
#include <bits/stdc++.h> using namespace std; int a[15]={6,2,5,5,4,5,6,3,7,6}; int main() { int t; scanf("%d",&t); while(t--) { int len; char c[100005]; scanf("%d%s",&len,c); int sum=0; for(int i=0;i<len;i++) sum+=a[c[i]-‘0‘]; for(int i=0;i<len;i++) { for(int j=9;j>=0;j--) { int lefts = sum-a[j]; int leftn = len-i-1; //printf("%d\n",lefts); if(leftn*2<=lefts&&lefts<=leftn*7) { putchar(‘0‘+j); sum = lefts; break; } } } puts(""); } return 0; }
时间: 2024-10-01 22:13:52