首页 > 其他 > 详细

[题解]Print a 1337-string...-数学(codeforces 1202D)

时间:2019-08-10 12:56:50      阅读:85      评论:0      收藏:0      [点我收藏+]

题目链接:https://codeforces.com/problemset/problem/1202/D

技术分享图片

 


 

题意:

构造一串只由 ‘1’,‘3’,‘7’ 组成的字符串,使其 ‘1337’ 子序列数量为n

 

思路:

 构造 ‘13377733337’ 类型的字符串,使 C(2,m)+k=n

k为中间 ‘7’ 的数量,C(2,m)为中间 ‘3’ 的数量

 

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 typedef long long ll;
 4 #define rep(i,m,n) for(int i=m;i<n;i++) 
 5 const int N = 2e5+5;
 6 ll a[100006],b[100006];
 7 
 8 int main(){
 9     ios::sync_with_stdio(false);
10     cin.tie(0);
11     cout.tie(0);
12     int t,n;
13     cin>>t;
14     while(t--){
15         cin>>n;
16         int num=sqrt(n*2),x,y;
17         rep(i,num,2*n+1){
18             if(i*(i-1)<=2*n)
19                 x=i,y=n-i*(i-1)/2;
20             else
21                 break;
22         }
23         cout<<"133";
24         rep(i,0,y)
25             cout<<"7";
26         rep(i,0,x-2)
27             cout<<"3";
28         cout<<"7"<<endl;
29     }
30     return 0;
31 }

 

[题解]Print a 1337-string...-数学(codeforces 1202D)

原文:https://www.cnblogs.com/Yanick/p/11330923.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!