CF1157D N Problems During K Days(简单构造)
题目
原数据是水成啥样了,\(<\longrightarrow <=,>=\longrightarrow <=,\)这也能过 被\(hack\)后身败名裂
做法
简单的贪心吧
开始先填上\(1\)~\(k\),然后如果能全部\(+1\)就加:这样一定能为后面的构造创造出更多的可能(\(2\)倍的限制)
后面就找到能填的最小的位置反复填就行了
Code
#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
const LL maxn=1e6+9;
LL n,k;
LL a[maxn];
int main(){
cin>>n>>k;
LL ret(0);
for(LL i=1;i<=k;++i) a[i]=i,ret+=a[i];
if(ret>n){
puts("NO"); return 0;
}
LL tmp(n-ret);
if(tmp>=k){
LL lun(tmp/k);
for(LL i=1;i<=k;++i) a[i]+=lun;
ret+=lun*k;
}
LL up(0);
while(true){
tmp=n-ret;
if(!tmp) break;
LL now(std::max(k-tmp+1,up));
if(a[now-1]*2<a[now]+1){
LL f(0);
for(LL j=now+1;j<=k;++j){
if(a[j-1]*2>=a[j]+1){
f=j;
break;
}
}
if(!f){
puts("NO"); return 0;
}
up=f;
for(LL j=f;j<=k;++j) ++a[j];
ret+=k-f+1;
}else{
for(LL i=now;i<=k;++i) ++a[i];
ret+=k-now+1;
}
}
puts("YES");
for(LL i=1;i<=k;++i) cout<<a[i]<<' ';
return 0;
}
CF1157D N Problems During K Days(简单构造)的更多相关文章
- CF1157D N Problems During K Days
思路: 在1, 2, 3, ... , k的基础上贪心构造. 实现: #include <bits/stdc++.h> using namespace std; typedef long ...
- Codeforces Round #555 (Div. 3) D. N Problems During K Days 【数学思维】
一 题面 D. N Problems During K Days 二 分析 对于这题,刚开始我就是陷入了对公式的执着,企图用公式直接确定第一个数,然后试着去找序列.经过思考和手动模拟后发现是很难保证正 ...
- 问题 H: 小k的简单问题
问题 H: 小k的简单问题 时间限制: 1 Sec 内存限制: 128 MB提交: 107 解决: 57[提交] [状态] [命题人:jsu_admin] 题目描述 地图上有n个村庄,小k每个月需 ...
- 基于邻接表的长度为k的简单路径的求解
描述 一个连通图采用邻接表作为存储结构.设计一个算法,判断无向图中任意给定的两点是否存在一条长度为k的简单路径. 输入 多组数据,每组m+3数据行.第一行有两个数字n,m和k,代表有n个顶点,m条边和 ...
- Codeforces Gym 100187K K. Perpetuum Mobile 构造
K. Perpetuum Mobile Time Limit: 2 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/gym/100187/pro ...
- Codeforce Round #555 Div.3 D - N Problems During K Days
构造题 话说挺水的题..当时怎么就WA到自闭呢.. 先把每个位置按照最低要求填满,也就是相差1..然后从最后一位开始把剩下的数加上,直到不能加为止. #include <bits/stdc++. ...
- Yet Another Ball Problem CodeForces - 1118E (简单构造)
大意: 求构造n个pair, 每个pair满足 对于每k组, 让$b_i$为$[1,k]$, $g_i$循环右移就好了 int n, k, cnt; int main() { scanf(" ...
- CF1082D:Maximum Diameter Graph (简单构造)
Graph constructive problems are back! This time the graph you are asked to build should match the fo ...
- 字典集合Dictionary<K,V>和构造的应用==>>体检套餐项目
效果 首先,我们先来准备我们需要的类 1.检查项目类 using System; using System.Collections.Generic; using System.Linq; using ...
随机推荐
- 设置PYTHONIOENCODING
PYTHONIOENCODING=utf8
- mysql备份总结
w汇总对比. mysqldump -u user -p wdbname > /www/wbak.sql pwd CREATE TABLE wbak_w_02071349 LIKE w; INSE ...
- mysql主从同步出现异常语句跳过错误处理
1.跳过操作: mysql>slave stop; mysql>SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1 跳过一个事务 mysql>slave st ...
- Java 之设计模式(总述)
1. 面向对象设计原则 单一职责原则: 一个类只负责一个功能领域中的相应职责 开闭原则: 软件实体应对扩展开放,而对修改关闭; 里氏代换原则: 所有引用基类对象的地方能够透明地使用其子类的对象; 依赖 ...
- beego
https://www.kancloud.cn/hello123/beego/126087
- python重建二叉树
# -*- coding:utf-8 -*- # class TreeNode: # def __init__(self, x): # self.val = x # self.left = None ...
- Period II---fzu1901(Next数组)
题目链接:http://acm.fzu.edu.cn/problem.php?pid=1901 给你一个字符串 s 求出所有满足s[i] == s[i+p] ( 0 < i+p < len ...
- javascrpt 页面格式化页面
下面这个页面,格式化javaScript <html> <head> <title>JS格式化工具 </title> <meta http-equ ...
- celery-rabbitmq 安装部署
一:Python安装 1.下载python3源码 wget https://www.python.org/ftp/python/3.5.0/Python-3.5.0.tgz 2.解压 tar xf P ...
- excel判断单元格包含指定内容的函数用=IF(COUNTIF(A1,"*内容*"),"0","1")
前面我们聊过怎样将Excel包含某字符的单元格填充颜色,这边我们用另外一种方法来实现:excel判断单元格包含指定内容的函数 选中需要显示结果的单元格,假设我们要判断第一行第一列的单元格A1是否含有“ ...