Content

请找出一个由 \(n\) 个正整数组成的数列 \(\{a_1,a_2,\dots,a_n\}\),满足以下两种条件:

  • \(\sum\limits_{i=1}^na_i^2\geqslant x\)。
  • \(\sum\limits_{i=1}^na_i\leqslant y\)。

数据范围:\(1\leqslant n\leqslant 10^5\),\(1\leqslant x\leqslant 10^{12}\),\(1\leqslant y\leqslant 10^6\)。

Solution

我们不妨设 \(f(x)=x^2(x>0)\),然后画出这个函数的图像之后不难看出 \(f(x)\) 是增函数,且随着 \(x\) 的增长,其值越来越大。因此我们考虑这样的一个贪心:将前 \(n-1\) 个数全部赋值为 \(1\),最后一个数赋值为 \(y-(n-1)=y-n+1\)。然后再计算 \(1^2\cdot(n-1)+(y-n+1)^2\) 是否 \(\geqslant x\),是的话直接输出方案,否则输出 \(-1\)。

另外这题还要注意一个特判:因为题目中并没有保证 \(y\geqslant n\),而要求的数列又要求全是正整数。所以如果 \(y<n\),那么也无法得到合法的方案,输出 \(-1\)。

Code

ll ans[100007], xx;

int main() {
int n = Rint; ll x = Rll; int y = Rint;
if(y < n) return puts("-1"), 0;
F(i, 2, n) ans[i] = 1;
ans[1] = y - n + 1;
F(i, 1, n) xx += 1ll * ans[i] * ans[i];
if(xx < x) return puts("-1"), 0;
F(i, 1, n) write(ans[i]), puts("");
return 0;
}

CF111A Petya and Inequiations 题解的更多相关文章

  1. Codeforces Beta Round #85 (Div. 1 Only) A. Petya and Inequiations 贪心

    A. Petya and Inequiations Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest ...

  2. codeforces 111A/112C Petya and Inequiations

    题目:Petya and Inequiations传送门: http://codeforces.com/problemset/problem/111/A http://codeforces.com/p ...

  3. CF1080A Petya and Origami 题解

    Content 小 P 想给 \(n\) 位朋友各发一张邀请函,每张邀请函需要耗费 \(2\) 张红色纸,\(5\) 张绿色纸和 \(8\) 张蓝色纸.商店里面的纸是一堆一堆卖的,每堆里面有 \(k\ ...

  4. CF1214E Petya and Construction Set题解

    原来这就叫构造题,了 这道题的做法,我自己诌了一个形象的名字--"挂葡萄"法( 首先,"搭葡萄架":考虑到每个距离 \(d_i\) 只与 \(2i-1,2i\) ...

  5. codeforce--Vasya and Petya's Game

    网址:http://codeforces.com/contest/576/problem/A A. Vasya and Petya's Game time limit per test 1 secon ...

  6. Codeforces Beta Round #85 (Div. 1 Only) B. Petya and Divisors 暴力

    B. Petya and Divisors Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/111 ...

  7. Codeforces Codeforces Round #319 (Div. 2) C. Vasya and Petya's Game 数学

    C. Vasya and Petya's Game Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/ ...

  8. CodeForces832-B. Petya and Exam

    补的若干年以前的题目,水题,太菜啦_(:з」∠)_    B. Petya and Exam time limit per test 2 seconds memory limit per test 2 ...

  9. Petya and Array CodeForces - 1042D (树状数组)

    D. Petya and Array time limit per test 2 seconds memory limit per test 256 megabytes input standard ...

随机推荐

  1. 构建“元宇宙”,有哪些3D建模方式?

    "沉浸.3D世界.虚拟社交.虚拟购物",最近"元宇宙"的概念特别火.人们畅想通过AR/VR以及其他互联网技术,把现实世界的楼房街道.天气温度.人际关系等投射到虚 ...

  2. C#使用Thrift作为RPC框架实战(四)之TSocket

    前言 在前几个小节中我们讲了Thrift框架的基本概念以及重要的名称空间,接下来的几个小节,我们将站在实战的角度来深入讲解一些Thrift的重要类型.本小节我先要讲一下Thrift框架支持TCP通信的 ...

  3. CF Edu Round 71

    CF Edu Round 71 A There Are Two Types Of Burgers 贪心随便模拟一下 #include<iostream> #include<algor ...

  4. 洛谷 P5401 - [CTS2019]珍珠(NTT+二项式反演)

    题面传送门 一道多项式的 hot tea 首先考虑将题目的限制翻译成人话,我们记 \(c_i\) 为 \(i\) 的出现次数,那么题目的限制等价于 \(\sum\limits_{i=1}^D\lflo ...

  5. datamash 命令行下的快速计算工具

    github地址:https://github.com/agordon/datamash

  6. mongodb存储的基本使用

    Python连接mongodb一般使用pymongo模块 1. pymongo模块的简单使用 ### MongoDB存储 ## 连接MongoDB import pymongo # 建立连接对象,2种 ...

  7. 一起手写吧!Promise!

    1.Promise 的声明 首先呢,promise肯定是一个类,我们就用class来声明. 由于new Promise((resolve, reject)=>{}),所以传入一个参数(函数),秘 ...

  8. vim使用配置(转)

    在终端下使用vim进行编辑时,默认情况下,编辑的界面上是没有行号的.语法高亮度显示.智能缩进等功能的. 为了更好的在vim下进行工作,需要手动配置一个配置文件: .vimrc 在启动vim时,当前用户 ...

  9. 增大Oracle Virtualbox的磁盘空间

    https://blog.csdn.net/hiyachen/article/details/102131823 背景 在virtualbox中装好Linux以及Application之后,发现硬盘空 ...

  10. Java Jar包压缩、解压使用

    什么是jar包JAR(Java Archive)是Java的归档文件,它是一种与平台无关的文件格式,它允许将许多文件组合成一个压缩文件. 如何打/解包使用jdk/bin/jar.exe工具,配置完环境 ...