窒息操作:AtCoder Regular Contest 152 A-Seat Occupation

news/2025/1/16 15:45:10/

传送门: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;
}

http://www.ppmy.cn/news/477224.html

相关文章

你快要感到窒息了吗?生活空间空气污染催生民众健康意识提升

3月29日&#xff0c;觉轶TRUEAST&#xff08;广东觉轶科技有限公司&#xff09;作为首家被授予广东省室内环境卫生行业协会&#xff08;简称GIEHA&#xff09;副会长单位的专业香气定制企业&#xff0c;有幸再次受邀参加第二届广州国际环境空气净化产业博览会暨高峰论坛&#x…

计算机机房必须用七氟丙烷灭火器吗,释放七氟丙烷气体会不会使人窒息?

经常看到有的朋友疑惑用七氟丙烷灭火系统的房间灭火剂释放以后在里面的人会不会窒息&#xff0c;大家认为七氟丙烷灭火剂会稀释房间里面的空气以至于使人窒息&#xff0c;其实不会。 七氟丙烷属于一种常见灭火剂&#xff0c;在常温下是气态&#xff0c;具有无色、无味、不导电、…

一次令人窒息的百度面试

最近接到了百度的面试&#xff0c;个人觉得基础知识准备的比较充分&#xff0c;就去网上找了一些百度的面经&#xff0c;冥冥之中我在众多的面试题中打开了下边两个面试题&#xff1a; 2021百度前端社招面经 百度前端面试题分享&#xff0c;带答案 看完之后我直呼“哇哦~”&…

如何预防液化气泄漏

对于液化气的泄露&#xff0c;我们一贯采取的解决办法是预防为主&#xff0c;监测为辅&#xff0c;现时代是互联网时代&#xff0c;建议购买一个液化气泄露检测的检测器&#xff0c;放置于需要被监测的地方进行全天候24小时监测&#xff0c;科学有效的防范了液化气的泄露&#…

【第25题】求所有 1 到 5 的全排列 | 令人窒息的 for 循环

文章目录 零、写在前面一、题目描述二、解题思路三、代码详解四、推荐专栏五、习题练习零、写在前面 目前本专栏正在进行优惠活动,在博主主页添加博主好友(好友位没有满的话),可以获取 付费专栏优惠券。   今天是学习 「 C语言 」 打卡的第二十五天,学习方式很简单,每天…

穿孔纸带 Punched tape

看到穿孔纸带&#xff0c; 了解了它的历史&#xff0c; 佩服前辈们的智慧。 来看看维基百科&#xff1a; Punched tape or perforated paper tape is a form of data storage, consisting of a long strip of paper in which holes are punched to store data. Now effectively…

真空压缩袋哪个牌子好

要想了解真空压缩袋哪个牌子好&#xff0c;首先就要知道压缩袋是由什么材质做的&#xff0c;什么材质做的好。当然现在压缩袋牌子也比较多&#xff0c;有天喜、文博、净派人家等等。这些还不错&#xff0c;卖的比较多的。 压缩袋现 在在我们的日常生活中已是很常用的了&#xf…

大连理工计算机博士,【看完窒息】大连理工大学博士遗书

no梦想何必远方2021-04-21 16:21:50 点灭只看此人举报 为什么又是大连理工大学&#xff1f;为什么又是化学相关专业&#xff1f; 为什么又是大连理工大学&#xff1f;为什么又是化学相关专业&#xff1f; 亮了(2941) 回复 查看评论(28) 若许自由2021-04-21 16:25:15 点灭只看此…