首页 > 其他分享 >题解 CF1740D

题解 CF1740D

时间:2022-11-30 09:11:28浏览次数:35  
标签:终点 CF1740D int 题解 棋子 放置 include

CF1740D

这个题说实话比 \(C\) 题要好想/jk,但是我没有在考场上写出来,写出来了但是没交上

这个题只需要记录一下终点当前时刻,需要放置下标的棋子(姑且叫它棋子),以及当前棋盘上剩余的空间即可

记录终点应放置的棋子是为了检验当前起点放置的物品是否可以直接放置到终点上

  • 如果不是,就需要将其放在棋盘上任意位置,除了终点和起点,并且不能放置在其他物品上方,(当时没仔细读题,写了一个可以在棋盘其他位置按顺序放置的代码挂掉了qwq)

  • 如果是的话,就需要检验应该按顺序放置在他的上方的棋子是否已经从起点出来,出来了就需要将其放置到终点上,同时棋盘的空位将多出来一个,如果没有那就直接进行下一次操作

这里要注意,每次移动时的空间只需要有 \(4\) 个,因为可以像华容道一样移动,但是其他棋子不能触碰到终点和起点,所以是 \(4\) 个,空间满了,就直接输出不可以的选项即可

/*
#date :10/29/2022
#editor :apple_tyr/Apollo_tyr
#problem or
contest:CF1740D
*/
#include<map>
#include<string.h>
#include<cstdio>
#include<string>
#include<iostream>
using namespace std;
const int N=1e5+10;
int T,n,m,k;
int a[N];
int vis[N];
int main(){
scanf("%d",&T);
while(T--){
scanf("%d%d%d",&n,&m,&k);
int cnt=k,kk=0;
bool f=1;
for(int i=1;i<=k;i++){
scanf("%d",&a[i]);
vis[i]=0;
}
for(int i=1;i<=k;i++){
if(kk<n*m-3){
if(a[i]==cnt){
cnt--;
while(vis[cnt]==1){
kk--;
vis[cnt]=0;
cnt--;
}
}else{
vis[a[i]]=1;
kk++;
}
}else{
puts("TIDAK");
f=0;
break ;
}
}
if(f){
puts("YA");
}
}
return 0;
}

标签:终点,CF1740D,int,题解,棋子,放置,include
From: https://www.cnblogs.com/Tyrue-blog/p/16937378.html

相关文章

  • Codeforces Round #836 (Div. 2) A-D题解
    比赛链接A、SSeeeeiinnggDDoouubbllee一个字符串的每个字母翻倍,且没有其他限制。所以把字符串正着输一遍,再倒叙输出一遍即可。点击查看代码#include<bits/stdc++.h>......
  • 【题解】 P8287 「DAOI R1」Flame
    题面传送门解决思路本题解是对这篇题解部分内容的补充,讨论的是两种\(\mathcal{O(m\logn)}\)的做法。大体思路都是一样的,先预处理出每一条边需要多少时间后才能连......
  • 2022 ICPC 济南站 L 题题解
    题意给定一棵\(n\)个点有边权的无根树,有\(q\)次询问,每次给定\(l,r\),求\[\min_{l\leu<v\ler}\{\operatorname{dist}(u,v)\}.\]数据范围:\(1\len\le2\times10^5......
  • 「题解」Codeforces 1765L Project Manager
    写了两个小时写吐了,你告诉我这玩意2400?如果不管假期的话,那么每一周必然会有一个项目跟进一次进度。那么答案就是线性的。即使有假期的存在也没关系,每个假期顶多就只会拖......
  • angular FormArray 中嵌套 FormGroup 问题解决
    官方例子里说了FormArray可以嵌套group或者array,但只给了control的实例,这里记录一下嵌套groupts文件:import { Component } from '@angular/core';import { For......
  • NOIP 2022 题解
    rp++juruo的noip真实成绩:0+0+0+0=0pts.题目大意洛谷有,这里就不放了。T1.种花可以维护每一个点向下最多延伸多长$xia_i$,向右延伸最多多长$you_i$,这样C就好求了,可以维......
  • 题解 P4448
    如果这不是一道原题,这道题出的还不错,是个比较毒瘤的数数。由于我太菜了反正我自己没有做出来后面的dp,zyf巨佬教的。不过听说合肥六中某巨佬当年也没做出来,平衡了雾但问......
  • AT_otemae2019_a 寝坊だ!ピ太郎! (You overslept, Pitaro) 题解
    题目大意:给出两个数 a,b 如果 a+0.5>b,输出 1,否则输出 0。a,b 均为整数。思路:这是一道模拟题,模拟即可。代码:注意:要开浮点型!#include<bits/stdc++.h>using......
  • CF1119E Pavel and Triangles 题解
    题面PavelandTriangles题面翻译给定n种木棍,第i+1种有ai​个,长度为2^i,求用这些木棍可以同时拼出多少个三角形(不可重复使用同一根)输入第一行n,第二行n个整数a0,a1,a2.........
  • P8867 [noip2022]建造军营 题解
    题意:给定一张图,选择一些点和一些边,使得割断任意没有选的边,被选中的点仍连通。对\(10^9+7\)取膜。\(n\leq5\cdot10^5\)这篇题解会略讲缩边,详讲自己推dp状态与......