hdu5334(2015多校4)--Virtual Participation(构造)
题目大意:给出一个数字k,要求做出一个长度小于等于10^5的序列。该序列中不同样的连续子序列有k个。
构造啊,。,,,,一点辙都没有
使用连续的数字做成序列,能够省事的计算出不同样的子序列有多少个。
使用n个1,那么不同样子序列有n种。
使用n个1和m个2,那么不同样的子序列有n+m+n*m种。
使用n个1,m个2和l个3,那么不同样的子序列有n+m+l+n*m+n*l+m*l种。
当k小于等于10^5时。直接输出k个1。
当k大于10^5时。对于使用1,2,3的情况能够做出满足各种k的子序列。
那么我们要求的就是求出n。m。l的值,
令a = n+l+1 , b = m+l+1 , c = l ; 得到a,b是为了凑出n+m+l+n*m+n*l+m*l,终于a*b = k + c*c + c + 1
枚举c。求k+c*c+c+1的全部约数。看是否有a和b满足a = n+l+1 , b = m+l+1 , c = l 而且n+m+l <= 10^5
假设存在了就输出连续的n个1,m个2,l个3.
- #include <cstdio>
- #include <cstring>
- #include <algorithm>
- using namespace std ;
- #define LL __int64
- int main() {
- LL k , a , b , c ;
- LL i , j , l , flag ;
- while( scanf("%I64d", &k) != EOF ) {
- if( k <= 100000 ) {
- printf("%I64d\n", k) ;
- for(i = 1 ; i < k ; i++)
- printf("1 ") ;
- printf("1\n") ;
- continue ;
- }
- l = flag = 0 ;
- while( 1 ) {
- c = k+l*l+l+1 ;
- for(j = l+1 ; j*j <= c ; j++) {
- a = j ;
- if( c%a ) continue ;
- b = c/a ;
- if( b < l+1 ) continue ;
- if( a-l-1+b-l-1+l <= 100000 ) {
- flag = 1 ;
- break ;
- }
- }
- if( flag ) break ;
- l++ ;
- }
- printf("%I64d\n", a+b-l-2) ;
- for(i = 0 ; i < a+b-l-2 ; i++) {
- if( i < a-l-1 )
- printf("1") ;
- else if( i < a+b-2*l-2 )
- printf("2") ;
- else
- printf("3") ;
- if( i == a+b-l-3 ) printf("\n") ;
- else printf(" ") ;
- }
- }
- return 0 ;
- }
hdu5334(2015多校4)--Virtual Participation(构造)的更多相关文章
- 2015 多校联赛 ——HDU5302(构造)
Connect the Graph Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others ...
- 2015 多校联赛 ——HDU5353(构造)
Each soda has some candies in their hand. And they want to make the number of candies the same by do ...
- hdu5301(2015多校2)--Buildings(构造)
Buildings Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others) Tota ...
- 2015 多校联赛 ——HDU5334(构造)
Virtual Participation Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Ot ...
- 2015 Multi-University Training Contest 4 hdu 5334 Virtual Participation
Virtual Participation Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Ot ...
- hdu 5288||2015多校联合第一场1001题
pid=5288">http://acm.hdu.edu.cn/showproblem.php?pid=5288 Problem Description OO has got a ar ...
- hdu5379||2015多校联合第7场1011 树形统计
pid=5379">http://acm.hdu.edu.cn/showproblem.php? pid=5379 Problem Description Little sun is ...
- 记人生中第一场认真打的CF——CF1000(虽然是Virtual participation)
老师说下午要让我们(来自开明的新高一同学)感受一下CF,于是下午2:20我们就集中到了机房.老师教我们用Educational Codeforces Round 46 (Rated for Div. ...
- 2015多校联合训练赛 hdu 5308 I Wanna Become A 24-Point Master 2015 Multi-University Training Contest 2 构造题
I Wanna Become A 24-Point Master Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 ...
随机推荐
- linux如何安装xampp,以及融合dvwa
1.官网下载:https://www.apachefriends.org/download.html 2.赋予执行权限 [admin@19-56 ~]$ chmod +x xampp-linux-x6 ...
- C#之Raw Socket实现网络封包监视
同Winsock1相比,Winsock2最明显的就是支持了Raw Socket套接字类型,使用Raw Socket,可把网卡设置成混杂模式,在这种模式下,我们可以收到网络上的IP包,当然包括目的不是本 ...
- 理解JS里的偏函数与柯里化
联系到上篇博客讲的bind完整的语法为: let bound = func.bind(context, arg1, arg2, ...); 可以绑定上下文this和函数的初始参数.举例,我们有个乘法函 ...
- Linux源码编译安装MySQL5.7
目录[-] 一.环境准备: 二.升级系统: 三.做一些准备工作(以下Linux命令均在su到root用户操作): 四.开始编译安装mysql-5.7.9: 一.环境准备: 我尝试过以下环境都是能成功的 ...
- vue2 router-link to
<template> <div> <nv-header></nv-header> <div class="artlist"&g ...
- docker入门——镜像简介
什么是docker镜像 Docker镜像是由文件系统叠加而成. 最底端是一个引导文件系统,即bootfs: 这很像典型的Linux/Unix的引导文件系统.Docker用户几乎永远不会和引导文件系统有 ...
- React Router V4发布
React Router V4 正式版发布,该版本相较于前面三个版本有根本性变化,遵循 Just Component 的 API 设计理念. 本次升级的主要变更有: 声明式 Declarative 可 ...
- 使RESTful Web服务更加实用的10个建议
提示:随着RESTful Web services的流行程度不断地上升,开发人员需要知道如何避免开发中的陷阱以及让开发出来的Web service达到自己能做到的最好程度. 过去的几年里,我们看到RE ...
- B8:中介者模式 Mediator
用一个中介对象来封装一系列的对象交互,中介者使得各对象不需要显示地相互引用,从而使其耦合松散,而且可以独立的改变它们之间的交互. 减少了各对象之间的耦合,使得可以独立的改变或复用各个Mediator或 ...
- IOS AppUI规格指南