传送门:AtCoder

题目描述:

There is a row of L chairs. Now, N groups of people will come and take seats in order. Each group
consists of one or two people, and the i-th group to come consists of ai people. The total number of people equals L.
Each group will randomly choose unoccupied chairs where all group members can sit consecutively,
and occupy those chairs. However, if there are not enough consecutive unoccupied chairs, they will
leave without taking seats.
Determine whether it is guaranteed that all N groups can take seats.
输入:
3 4
1 2 1
输出:
Yes

身为ARC的第一题难度本来应该是入门题,然而卡了我两个小时…

比赛刚开始,我看了一眼题,直接认为2的个数大于2肯定是不对的,因为我当时想只要有两个2肯定会交叉(然而这个思想肯定是错了).然后我室友提出了一个看似很正确的想法,就是序列最后一个数字如果是2的话,那肯定是不行的.诶,我当时推了一波,好像确实是这样,因为如果是1的话可以随便插,但是是2的话我们可以使用之前的1使其只能放在我们的首尾两端.

但是交上去之后还是wa,然后就一直陷入自闭之中,两个人一直推不出正确答案…
还剩半小时时,我找到了一个反例:2 2 2 1.然后我根据上述的理论加上了一个补丁,那就是末尾两个数和是3的话肯定是不满足的,但是打上补丁之后还是wa.然后就一直wa,最后一整场比赛爆零

赛后看了一下题解,发现我们在打这道题时一直有一个误区,那就是在到我们的最后几个数字之前可能就有组是无法坐下的…一直陷入了一个牛角尖中.所以正确的做法应该是正着做的…

总结一下感觉还是自己思维题打少了,对于这种思维题的解决还是有点问题.以后准备多打打AtCoder上的题目了

补上赛后写的正解

#include <iostream>
#include <cstdio>
#include <cmath>
#include <algorithm>
#include <vector>
#include <map>
#include <set>
#include <queue>
#include <string.h>
#include <stack>
#include <deque>
using namespace std;
typedef long long ll;
#define inf 0x3f3f3f3f
#define root 1,n,1
#define lson l,mid,rt<<1
#define rson mid+1,r,rt<<1|1
inline ll read() {ll x=0,w=1;char ch=getchar();for(;ch>'9'||ch<'0';ch=getchar()) if(ch=='-') w=-1;for(;ch>='0'&&ch<='9';ch=getchar()) x=x*10+ch-'0';return x*w;
}
#define maxn 1000000
#define ll_maxn 0x3f3f3f3f3f3f3f3f
const double eps=1e-8;
int n;int a[maxn];int l;
int main() {n=read();l=read();for(int i=1;i<=n;i++) {a[i]=read();if(a[i]==2&&l<2) {cout<<"No"<<endl;return 0;}l-=(a[i]+1);}cout<<"Yes"<<endl;return 0;
}

窒息操作:AtCoder Regular Contest 152 A-Seat Occupation相关推荐

  1. AtCoder Regular Contest 065

    AtCoder Regular Contest 065 C - Daydream Score : 300300300 points 倒着来就行了,正着来会产生歧义匹配,dreamer,dreamdre ...

  2. NOMURA Programming Contest 2021(AtCoder Regular Contest 121)

    文章目录 A - 2nd Greatest Distance B - RGB Matching C - Odd Even Sort D - 1 or 2 E - Directed Tree F - L ...

  3. AtCoder Regular Contest 100 D - Equal Cut 思维 + 前缀和

    传送门 文章目录 题意: 思路: 题意: 给你一个数组aaa,你要将其分成四份,让这四份中和的最大值−-−最小值最小,输出这个最小值. n≤2e5,ai≤1e9n\le2e5,a_i\le1e9n≤2 ...

  4. AtCoder Regular Contest 100 E - Or Plus Max Sos dp

    传送门 文章目录 题意: 思路: 题意: 给你一个长度为2n2^n2n的数组,让你对于所有的1≤k≤2n−11\le k\le 2^n-11≤k≤2n−1求最大的ai+aj,0≤i<j≤2n−1 ...

  5. AtCoder Regular Contest 061 E - Snuke‘s Subway Trip(建图 + dijkstra最短路 / 0/1bfs / 并查集)

    AtCoder Regular Contest 061 E - Snuke's Subway Trip problem 洛谷翻译 my idea 最近一直在做网络流,所以一读这题后,我就想到了最小费用 ...

  6. AtCoder题解——AtCoder Regular Contest 107——B - Quadruple

    题目相关 题目链接 AtCoder Regular Contest 107 B 题,https://atcoder.jp/contests/arc107/tasks/arc107_b. Problem ...

  7. AtCoder Regular Contest 071 D - 井井井 / ###

    题目:http://arc071.contest.atcoder.jp/tasks/arc071_b 题意: 有一个二维的平面,给你xn根竖线和ym根横线,问这些线围成的长方形(正方形)的面积和(要求 ...

  8. AtCoder Regular Contest 062 E - AtCoDeerくんと立方体づくり / Building Cubes with AtCoDeer

    题目传送门:https://arc062.contest.atcoder.jp/tasks/arc062_c 题目大意: 给你\(N\)块正方形木板,每块木板四角有四种颜色(可以相同),木板中央有编号 ...

  9. AtCoder Regular Contest 120 C - Swaps 2 线段树模拟

    传送门 文章目录 题意: 思路: 题意: 给你两个序列a,ba,ba,b,每次可以执行一个操作:将a[i]a[i]a[i]与a[i+1]a[i+1]a[i+1]交换,且让交换后的a[i]+1,a[i+ ...

最新文章

  1. 人工智能助力全国大学生智能车竞赛
  2. C++ 派生类的定义
  3. 微服务实战(二):使用API Gateway
  4. 蒙特卡洛积分与重要性采样详解
  5. GPU迎来投资热潮 退潮后谁在裸泳
  6. 5.1.8 DELETE删除数据
  7. 靠着零代码报表工具,转行报表开发后月薪超过3万
  8. Slider控件的使用方法
  9. VTK(五)---内窥镜漫游(基于VMTK血管中心线提取)
  10. 获取并反编译微信小程序源码(仅供学习)
  11. 【深入理解JS核心技术】13. 什么是高阶函数
  12. 自制能自动加载所需RAID驱动的Windows PE系统来安装服务器系统
  13. stm32f072--定时器17使用CH1N通道输出pwm时没有波形的原因
  14. 百度2005年面试题
  15. DHU Python Curriculumly Learning【5】——大作业_key_by_TA
  16. 显示器颜色偏色的排查过程(偏黄、偏红、偏蓝、偏绿等)
  17. linux操作系统具有哪些特性,Linux系统拥有哪些特性?这些你必须知道!
  18. HRBU 2021暑期训练解题报告阶段二Day1
  19. 【路径规划】基于matlab拓扑图和跟随领导者机器人编队路径规划【含Matlab源码 2500期】
  20. 明朝皇帝有哪些(按在位顺序排列)?

热门文章

  1. 京东移动端首页 案例
  2. 编译原理三级项目PL/0的研究与改进
  3. Android开发艺术探索——第十四章:JNI和NDK编程
  4. freemarker中的split字符串分割
  5. 轻流,做未知领域的探索者
  6. Linux的pycharm中出现subprocess.CalledProcessError: Command ‘XXX‘ returned non-zero exit status 1.
  7. 浪潮云海超融合一体机提升存储性能 支撑关键业务高效运行
  8. 3分钟掌握自给IP地址
  9. C++ Primer Plus读书感悟
  10. 与门非门在电子计算机中的应用,【E电路】数字电路基础:与门电路