N Problems During K Days
https://codeforces.com/contest/1157/problem/D
题意:找到一个长度为k的元素大于0的数组,并且,整个数组的和等于n
题解:因为数组严格递增,数组最小和k*(k+1)/2,而i-n的最小和为(k-i+1)*(k-i+2)/2,对于这个公式可以加上一个首项,增加i-n的和,对第i个元素在i-n的和不应该大于剩下未分配的n,当然应该满足
/*
*@Author: STZG
*@Language: C++
*/
#include <bits/stdc++.h>
#include<iostream>
#include<algorithm>
#include<cstdlib>
#include<cstring>
#include<cstdio>
#include<string>
#include<vector>
#include<bitset>
#include<queue>
#include<deque>
#include<stack>
#include<cmath>
#include<list>
#include<map>
#include<set>
//#define DEBUG
#define RI register int
#define endl "\n"
using namespace std;
typedef long long ll;
//typedef __int128 lll;
const int N=100000+10;
const int M=100000+10;
const int MOD=1e9+7;
const double PI = acos(-1.0);
const double EXP = 1E-8;
const int INF = 0x3f3f3f3f;
ll t,n,m,k,p,l,r,u,v;
int ans,cnt,flag,temp,sum;
int a[N];
char str;
struct node{};
int main()
{
#ifdef DEBUGfreopen("input.in", "r", stdin);//freopen("output.out", "w", stdout);
#endif//ios::sync_with_stdio(false);//cin.tie(0);//cout.tie(0);//scanf("%d",&t);//while(t--){scanf("%I64d%I64d",&n,&k);if(n<k*(k+1)/2){cout<<"NO"<<endl;return 0;}for(int i=1;i<=k;i++){ll base=(k-i+1ll)*(k-i+2ll)/2;ll num=max(1ll,i==1?(n-base)/(k-i+1ll)+1:min(2ll*a[i-1],(n-base)/(k-i+1ll)+1));//cout<<base<<" "<<num<<endl;if(num>a[i-1]&&(num<=a[i-1]*2||i==1)){n-=num;a[i]=num;}else{cout<<"NO"<<endl;return 0;}}if(n){cout<<"NO"<<endl;return 0;}cout<<"YES"<<endl;for(int i=1;i<=k;i++)printf("%d%c",a[i]," \n"[i==k]);//}#ifdef DEBUGprintf("Time cost : %lf s\n",(double)clock()/CLOCKS_PER_SEC);
#endif//cout << "Hello world!" << endl;return 0;
}
N Problems During K Days相关推荐
- Codeforces Round #555 (Div. 3) c2 d e f
c2:Increasing Subsequence (hard version) 那边小取那边,然后相等比较后面的长度 #include<bits/stdc++.h> using name ...
- 在FAANG面试中破解堆算法
In FAANG company interview, Candidates always come across heap problems. There is one question they ...
- 3D数学之四元组应用及实现
第一次接触四元组是在使用OGRE引擎的时候,那个时候非常好奇,为什么4个数字就能表示一个旋转,另外为什么要用四元组来表示旋转,用旋转矩阵不是挺好的吗?经过一段的时间的学习,算是对四元组有了基础的认识, ...
- Codeforces Round # 555 (Div3)
1157A. Reachable Numbers 给一个数n,每次可以给n加1,得到去除末尾0之后的数,输出总共可以到达多少个数. 按题意直接模拟(出题人说最多答案只有91个). https://co ...
- 【GNN报告】GNN-LOGS部分报告汇总
Bastain Rieck: Topology-Based Graph Representation Learning 基础 拓扑学习 基于拓扑学习的工作 参考 Bastain Rieck: Topo ...
- 关于sba(sparse bundle adjustment)的30个常见问题
Q1 -- 什么是sba? sba是一个C/C++软件包对广义稀疏光束平差,在GNU公共许可证下分发.sba是通用的,提供关于定义涉及光束法平差的图像投影的参数选择和函数关系增强的灵活性. Q2 -- ...
- GB_T28181-2016.pdf
国标28181-2016版本检测,由于文件过大,而且博客不支持上传文件,需要GB28181-2016协议文档和公安一所检测文档的可以私信我,QQ:123011785 I C S1 3. 3 1 0 A ...
- 伍六七带你学算法 入门篇-最小的k个数
java面试题-最小的k个数 难度-简单 输入整数数组 arr ,找出其中最小的 k 个数.例如,输入4.5.1.6.2.7.3.8这8个数字,则最小的4个数字是1.2.3.4. 示例 1: 输入:a ...
- 刻意练习:LeetCode实战 -- Task12. 合并K个排序链表
背景 本篇图文是LSGO软件技术团队组织的 第二期基础算法(Leetcode)刻意练习训练营 的打卡任务.本期训练营采用分类别练习的模式,即选择了五个知识点(数组.链表.字符串.树.贪心算法),每个知 ...
最新文章
- Hexo博客NexT主题美化之顶部加载进度条
- Linux运行Java出现“Exception in thread main java.lang.OutOfMemoryError: Java heap space”报错...
- Packstack安装havana后,计算节点连接DB错误解决
- 康力电梯开门不关门 服务器显示开门键动作,康力电梯门机故障代码
- python爬虫下载模块_python爬虫系列(4.5-使用urllib模块方式下载图片)
- 几何画板怎样添加操作按钮
- qml修改图片的颜色
- 进程篇—进程整理(转)
- 机械盘阵高并发——使用ImDisk 与 junction显著提高整体吞吐性能
- linux专业画图工具astah下载和安装
- hdu 4816,Bathysphere,三分
- 小程序模拟器没问题,但在真机上样式错乱,这个要怎么解决?
- 真正提升关键词排名的外链应该怎样发?
- 华为云nbiot接入示例_nbiot
- Mysql之账号管理、建库以及四大引擎【入门篇】
- 全球首只AIGC动画短片发行,日漫风格超治愈!
- 素问·金匮真言论原文
- nodejs实现公众号服务URL绑定验证,nodejs实现公众号关注并回发送一条消息,以及关注之后的聊天自动回复消息
- Your project path contains non-ASCII characters. 解决办法
- GetTickCount 得到时间进行比较计算遇到的异常
热门文章
- 归纳推理测试没做完_看她家新房,保洁做完还没家具就很漂亮,墙面刷灰色耐看又耐脏...
- python的知识点总结云分享_Python工程师面试必备25条Python知识点
- word公式插件_添加office小插件,让办公更高效
- keras从入门到放弃(二)多项回归
- plus 什么是mybais_【mybatis-plus】什么是乐观锁?如何实现“乐观锁”
- 北京内推 | 微软亚洲研究院DKI组王露研究员招聘强化学习方向研究实习生
- 也来谈谈RNN的梯度消失/爆炸问题
- ICLR 2020 开源论文 | 多关系图神经网络CompGCN
- 博士学位论文 | 机器阅读理解与文本问答技术研究
- db2数据库连接数 linux_linux db2 连接数据库