https://vjudge.net/problem/CodeForces-1295A
题目大意:最多只能点亮
n
n
n个位置,问能构成的数最大为多少。
思路:贪心,既然想要构成的数较大,那么自然位数越高越好,列一下每个数的代价,不难发现
1
1
1是最优选择,它的代价为
2
2
2,那么如果
n
n
n是偶数,全选
1
1
1就完事了,但是
n
n
n是奇数的时候就不能这样了,因为全选
1
1
1的话会有
1
1
1处浪费,而我们发现
7
7
7的代价是
3
3
3,所以不妨把首位的
1
1
1替换为
7
7
7。
#include<bits/stdc++.h>
#define INF 0x3f3f3f3f
using namespace std;
typedef long long ll;
int main()
{
int t,n;
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
int tmp=n>>1;
if(n&1)
--tmp;
if(n&1)
putchar('7');
for(int i=0;i<tmp;i++)
putchar('1');
putchar('\n');
}
return 0;
}