题意:从1开始走,最多走到n,走k步,总长度为n,不能停留在原地,不能走出1-n,问是否有一组方案,若有则输出

n<=1e9,k<=2e5,s<=1e18

思路:无解的情况分为两种:总长度太大,步数太多

每次贪心从1走到n或从n走到1,但要注意给剩下的步数留出空间

  1. #include<cstdio>
  2. #include<cstring>
  3. #include<string>
  4. #include<cmath>
  5. #include<iostream>
  6. #include<algorithm>
  7. #include<map>
  8. #include<set>
  9. #include<queue>
  10. #include<vector>
  11. using namespace std;
  12. typedef long long ll;
  13. typedef unsigned int uint;
  14. typedef unsigned long long ull;
  15. typedef pair<int,int> PII;
  16. typedef vector<int> VI;
  17. #define fi first
  18. #define se second
  19. #define MP make_pair
  20. #define N 100010
  21. #define M 200
  22. #define MOD 998244353
  23. #define eps 1e-8
  24. #define pi acos(-1)
  25.  
  26. int main()
  27. {
  28. //freopen("D.in","r",stdin);
  29. //freopen("D.out","w",stdout);
  30. ll n,k,s;
  31. scanf("%lld%lld%lld",&n,&k,&s);
  32. ll now=;
  33. if(k>s||k*(n-)<s)
  34. {
  35. printf("NO\n");
  36. return ;
  37. }
  38. printf("YES\n");
  39. while(k)
  40. {
  41. ll t=min(n-,s-(k-));
  42. if(now-t>) now-=t;
  43. else now+=t;
  44. printf("%lld ",now);
  45. s-=t;
  46. k--;
  47. }
  48. return ;
  49. }

【CF1015D】Walking Between Houses(构造,贪心)的更多相关文章

  1. Walking Between Houses(贪心+思维)

    Walking Between Houses There are nn houses in a row. They are numbered from 11 to nn in order from l ...

  2. Codeforces Round #501 (Div. 3) 1015D Walking Between Houses

    D. Walking Between Houses time limit per test 2 seconds memory limit per test 256 megabytes input st ...

  3. CF D. Walking Between Houses (贪心)

    题意: 现在有n个房子排成一列,编号为1~n,起初你在第1个房子里,现在你要进行k次移动,每次移动一都可以从一个房子i移动到另外一个其他的房子j里(i != j),移动的距离为|j - i|.问你进过 ...

  4. Codeforces Round #501 (Div. 3) D. Walking Between Houses (思维,构造)

    题意:一共有\(n\)个房子,你需要访问\(k\)次,每次访问的距离是\(|x-y|\),每次都不能停留,问是否能使访问的总距离为\(s\),若能,输出\(YES\)和每次访问的房屋,反正输出\(NO ...

  5. LA 6979 Known Notation 构造+贪心 铜牌题

    题意:给出一个字符串,有两种操作: 1.插入一个数字  2.交换两个字符   问最少多少步可以把该字符串变为一个后缀表达式(操作符只有*) #include <cstdio> #inclu ...

  6. Codeforces 985 最短水桶分配 沙堆构造 贪心单调对列

    A B /* Huyyt */ #include <bits/stdc++.h> #define mem(a,b) memset(a,b,sizeof(a)) #define mkp(a, ...

  7. 2020牛客暑期多校训练营 第二场 C Cover the Tree 构造 贪心

    LINK:Cover the Tree 最受挫的是这道题,以为很简单 当时什么都想不清楚. 先胡了一个树的直径乱搞的贪心 一直过不去.后来意识到这类似于最经典长链剖分优化贪心的做法 然后那个是求最大值 ...

  8. EC R 86 D Multiple Testcases 构造 贪心 二分

    LINK:Multiple Testcases 得到很多种做法.其中O(n)的做法值得一提. 容易想到二分答案 check的时候发现不太清楚分配的策略. 需要先考虑如何分配 容易发现大的东西会对小的产 ...

  9. Codeforces Round #650 (Div. 3) D. Task On The Board (构造,贪心)

    题意:有一个字符串和一组数,可以对字符串删去任意字符后为数组的长度,且可以随意排序,要求修改后的字符串的每个位置上的字符满足:其余大于它的字符的位置减去当前位置绝对值之和等于对应序列位置上的数. 题解 ...

随机推荐

  1. java中char类型转换成int类型的两种方法

    方法一: char ch = '9'; if (Character.isDigit(ch)){ // 判断是否是数字 int num = Integer.parseInt(String.valueOf ...

  2. jpeg解码库使用实例

    jpeg库下载地址: http://www.ijg.org/ 交叉编译三部曲: A ./configure --host=arm-linux-gcc --prefix=/home/flying/jpe ...

  3. 六、Shell echo命令

    Shell echo命令 Shell 的 echo 指令与 PHP 的 echo 指令类似,都是用于字符串的输出.命令格式: echo string 您可以使用echo实现更复杂的输出格式控制. 1. ...

  4. tp5.1发送邮件

    <?php namespace app\admin\controller; use think\Controller; use think\Request; use PHPMailer\PHPM ...

  5. Problem E. TeaTree - HDU - 6430 (树的启发式合并)

    题意 有一棵树,每个节点有一个权值. 任何两个不同的节点都会把他们权值的\(gcd\)告诉他们的\(LCA\)节点.问每个节点被告诉的最大的数. 题解 第一次接触到树的启发式合并. 用一个set维护每 ...

  6. windows下git安装以及基本配置

    一.首先要下载git然后进行默认安装即可,然后查看系统环境变量是否添加     二.桌面右击鼠标,选择git bash 进入操作页面 git --version 检测是否安装成功   安装完成有配置一 ...

  7. Android开发环境安装经验

    前段时间在一个安装论坛上,下载了老罗的Android学习视频,看到第三节就卡住了。我这边Eclipse安装SDK总是不成功,报各种错误。断断续续好几天的摸索,终于弄明白了。 首先要安装ADT插件,也就 ...

  8. 【Linked List Cycle II】cpp

    题目: Given a linked list, return the node where the cycle begins. If there is no cycle, return null. ...

  9. 强命名实用程序(SN.exe)

    不要在普通的命令行窗口中编译,请先打开C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Microsoft Visual Studio 2010 ...

  10. 图说不为人知的IT传奇故事-1-计算机新生

    此系列文章为“图说不为人知的IT传奇故事”,各位大忙人可以在一分钟甚至几秒内了解把握整个内容,真可谓“大忙人的福利”呀!!希望各位IT界的朋友在钻研技术的同时,也能在文学.历史上有所把握.了解这些故事 ...