当前位置: 首页 > news >正文

Codeforces - 1202D - Print a 1337-string... - 构造

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;
}

转载于:https://www.cnblogs.com/Yinku/p/11338033.html

相关文章:

  • 通用权限管理系统组件 (GPM - General Permissions Manager) 中实现大数据的高效分页显示...
  • 《学习之道》第十六章左脑的作用
  • Entity Framework 4.3尝试体会
  • 英汉《营销学》常用词汇-1
  • opencv源码解析之(2):滤波前言2
  • 流媒体服务器搭建实例——可实现录音,录像功能
  • Redis之hash数据结构实现
  • SCUT - G - 魔法项链 - 树状数组
  • SCUT - 482 - 生成树上的点 - Prufer
  • ACM算法相关资料
  • 洛谷 - P1462 - 通往奥格瑞玛的道路 - 二分 - Dijkstra
  • 洛谷 - P1522 - 牛的旅行 - Cow Tours - Floyd
  • wamp5环境配置基础教程
  • 模板 - Floyd
  • 这样的设计师,你们伤不起啊
  • Android单元测试 - 几个重要问题
  • const let
  • Docker下部署自己的LNMP工作环境
  • E-HPC支持多队列管理和自动伸缩
  • Java-详解HashMap
  • Js基础知识(四) - js运行原理与机制
  • Logstash 参考指南(目录)
  • 笨办法学C 练习34:动态数组
  • 王永庆:技术创新改变教育未来
  • 用Python写一份独特的元宵节祝福
  • 在 Chrome DevTools 中调试 JavaScript 入门
  • 仓管云——企业云erp功能有哪些?
  • 好程序员web前端教程分享CSS不同元素margin的计算 ...
  • 如何在招聘中考核.NET架构师
  • 支付宝花15年解决的这个问题,顶得上做出十个支付宝 ...
  • #mysql 8.0 踩坑日记
  • (10)ATF MMU转换表
  • (14)学习笔记:动手深度学习(Pytorch神经网络基础)
  • (26)4.7 字符函数和字符串函数
  • (附源码)spring boot校园拼车微信小程序 毕业设计 091617
  • (含react-draggable库以及相关BUG如何解决)固定在左上方某盒子内(如按钮)添加可拖动功能,使用react hook语法实现
  • (汇总)os模块以及shutil模块对文件的操作
  • (离散数学)逻辑连接词
  • (实战篇)如何缓存数据
  • (已解决)vue+element-ui实现个人中心,仿照原神
  • (原創) 如何安裝Linux版本的Quartus II? (SOC) (Quartus II) (Linux) (RedHat) (VirtualBox)
  • (总结)Linux下的暴力密码在线破解工具Hydra详解
  • .NET 8.0 发布到 IIS
  • .Net6使用WebSocket与前端进行通信
  • .NET简谈互操作(五:基础知识之Dynamic平台调用)
  • /bin/rm: 参数列表过长"的解决办法
  • /proc/vmstat 详解
  • :“Failed to access IIS metabase”解决方法
  • [ HTML + CSS + Javascript ] 复盘尝试制作 2048 小游戏时遇到的问题
  • [ 网络基础篇 ] MAP 迈普交换机常用命令详解
  • [1159]adb判断手机屏幕状态并点亮屏幕
  • [2018][note]用于超快偏振开关和动态光束分裂的all-optical有源THz超表——
  • [Angular] 笔记 16:模板驱动表单 - 选择框与选项
  • [BZOJ1008][HNOI2008]越狱
  • [C/C++]数据结构 深入挖掘环形链表问题