https://codeforces.com/contest/1202/problem/D

当时想的构造是中间两个3,然后前后的1和7组合出n,问题就是n假如是有一个比较大的质数因子或者它本身就是质数就会超长度。事实上程序会正确执行并分解成两个超大质数,不断putchar导致TLE。

正确的做法是通过3来主要组成答案,考虑133..337,中间有x个3,则有C(x,2)个组合,很明显可以发现在x=45000附近超过1e9的上限,而剩下的余数不会超过x=45000(或者在这个附近?)。

考虑怎么添加这个余数,可以在末尾用1来凑,或者在开头用7来凑。

#include<bits/stdc++.h>
using namespace std;
typedef long long ll; ll C[460005];
int Ctop=460000; void initC(){
for(int i=1;i<=Ctop;++i)
C[i]=(1ll*i*(i-1))/2; /*for(int i=1;i<=100;++i)
cout<<C[i]<<endl;*/
return;
} int n; void solve(){
int num3=(upper_bound(C+1,C+1+Ctop,n)-C)-1;
//cout<<num3<<endl;
//cout<<C[num3]<<endl;
int num7=n-C[num3];
printf("133");
for(int i=1;i<=num7;++i)
printf("7");
for(int i=1;i<=num3-2;++i)
printf("3");
printf("7\n");
return;
} int main() {
#ifdef Yinku
freopen("Yinku.in", "r", stdin);
#endif // Yinku
initC();
int T;
while(~scanf("%d", &T)) {
while(T--) {
scanf("%d",&n);
solve();
}
}
return 0;
}

最新文章

  1. 微信小程序实例
  2. mysql 报错max_allowed_packet处理办法
  3. 关于PDV的那些事
  4. 硅谷新闻8--TabLayout替换ViewPagerIndicator
  5. UIButton 详解
  6. 关于php加密库加密数据上传数据库或解密出错的问题
  7. Parcel.js + Vue 2.x 极速零配置打包体验
  8. DotNetCore跨平台~System.DrawingCore部署Linux需要注意的
  9. OpenStack运维(三):OpenStack存储节点和配置管理
  10. 平述factory reset ——从main system到重引导流程
  11. jdbc工具类的封装,以及表单验证数据提交后台
  12. Linux-Centon7安装以及配置
  13. kubernetes Helm-chart web UI添加
  14. jmeter源码导入eclipse步骤
  15. Jenkins持续集成学习-Windows环境进行.Net开发3
  16. 实现Cookie集合
  17. lambda、map、reduce、filter函数讲解
  18. 2、My Scripts
  19. 用SLF4j/Logback打印日志-1
  20. local unversioned, incoming add upon update问题

热门文章

  1. JS获取URL指定的参数值
  2. Java的格式化输出
  3. Oracle数据库备份还原
  4. java中的同步和异步
  5. zabbix 内网监控云服务器
  6. IFG以太网帧间隙
  7. docker常用软件安装及使用
  8. nw.js node-webkit基本程序结构与配置package.json配置说明
  9. Java中class的声明
  10. 【flask_sqlalchemy】模糊查询