QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#787132 | #9667. L-Covering Checker | N_z_ | AC ✓ | 9ms | 4724kb | C++23 | 6.9kb | 2024-11-27 10:00:22 | 2024-11-27 10:00:23 |
Judging History
answer
#include<bits/stdc++.h>
using namespace std;
struct time_helper{
#ifdef LOCAL
clock_t time_last;time_helper(){time_last=clock();}void test(){auto time_now=clock();std::cerr<<"time:"<<1.*(time_now-time_last)/CLOCKS_PER_SEC<<";all_time:"<<1.*time_now/CLOCKS_PER_SEC<<std::endl;time_last=time_now;}~time_helper(){test();}
#else
void test(){}
#endif
}time_helper;
#ifdef LOCAL
#include"dbg.h"
#else
#define dbg(...) (__VA_ARGS__)
#endif
namespace Fread{const int SIZE=1<<16;char buf[SIZE],*S,*T;inline char getchar(){if(S==T){T=(S=buf)+fread(buf,1,SIZE,stdin);if(S==T)return'\n';}return *S++;}}namespace Fwrite{const int SIZE=1<<16;char buf[SIZE],*S=buf,*T=buf+SIZE;inline void flush(){fwrite(buf,1,S-buf,stdout);S=buf;}inline void putchar(char c){*S++=c;if(S==T)flush();}struct NTR{~NTR(){flush();}}ztr;}
#define getchar Fread::getchar
#define putchar Fwrite::putchar
int print_precision=10;bool print_T_endl=1;char print_between=' ';
template<typename T>struct is_char{static constexpr bool value=(std::is_same<T,char>::value||std::is_same<T,signed char>::value||std::is_same<T,unsigned char>::value);};template<typename T>struct is_integral_ex{static constexpr bool value=(std::is_integral<T>::value||std::is_same<T,__int128>::value)&&!is_char<T>::value;};template<typename T>struct is_floating_point_ex{static constexpr bool value=std::is_floating_point<T>::value||std::is_same<T,__float128>::value;};namespace Fastio{struct Reader;struct Writer;template<size_t id>struct read_tuple{template<typename...T>static void read(Reader&stream,std::tuple<T...>&x){read_tuple<id-1>::read(stream,x);stream>>get<id-1>(x);}};template<>struct read_tuple<0>{template<typename...T>static void read([[maybe_unused]]Reader&stream,[[maybe_unused]]std::tuple<T...>&x){}};template<size_t id>struct print_tuple{template<typename...T>static void print(Writer&stream,const std::tuple<T...>&x){print_tuple<id-1>::print(stream,x);putchar(print_between);stream<<get<id-1>(x);}};template<>struct print_tuple<1>{template<typename...T>static void print(Writer&stream,const std::tuple<T...>&x){stream<<get<0>(x);}};template<>struct print_tuple<0>{template<typename...T>static void print([[maybe_unused]]Writer&stream,[[maybe_unused]]const std::tuple<T...>&x){}};
struct Reader{template<typename T>typename std::enable_if_t<std::is_class<T>::value,Reader&>operator>>(T&x){for(auto &y:x)*this>>y;return *this;}template<typename...T>Reader&operator>>(std::tuple<T...>&x){read_tuple<sizeof...(T)>::read(*this,x);return *this;}template<typename T>typename std::enable_if_t<is_integral_ex<T>::value,Reader&>operator>>(T&x){char c=getchar();short f=1;while(c<'0'||c>'9'){if(c=='-')f*=-1;c=getchar();}x=0;while(c>='0'&&c<='9'){x=(x<<1)+(x<<3)+(c^48);c=getchar();}x*=f;return *this;}template<typename T>typename std::enable_if_t<is_floating_point_ex<T>::value,Reader&>operator>>(T&x){char c=getchar();short f=1,s=0;x=0;T t=0;while((c<'0'||c>'9')&&c!='.'){if(c=='-')f*=-1;c=getchar();}while(c>='0'&&c<='9'&&c!='.')x=x*10+(c^48),c=getchar();if(c=='.')c=getchar();else return x*=f,*this;while(c>='0'&&c<='9')t=t*10+(c^48),s++,c=getchar();while(s--)t/=10.0;x=(x+t)*f;return*this;}template<typename T>typename std::enable_if_t<is_char<T>::value,Reader&>operator>>(T&c){c=getchar();while(c=='\n'||c==' '||c=='\r')c=getchar();return *this;}Reader&operator>>(char*str){int len=0;char c=getchar();while(c=='\n'||c==' '||c=='\r')c=getchar();while(c!='\n'&&c!=' '&&c!='\r')str[len++]=c,c=getchar();str[len]='\0';return*this;}template<typename T1,typename T2>Reader&operator>>(std::pair<T1,T2>&x){*this>>x.first>>x.second;return *this;}Reader&operator>>(std::string&str){str.clear();char c=getchar();while(c=='\n'||c==' '||c=='\r')c=getchar();while(c!='\n'&&c!=' '&&c!='\r')str.push_back(c),c=getchar();return*this;}Reader(){}}cin;const char endl='\n';
struct Writer{typedef __int128 mxdouble;template<typename T>typename std::enable_if_t<std::is_class<T>::value,Writer&>operator<<(const T&x){for(auto q:x){*this<<q;if(!is_class<decltype(q)>::value)*this<<print_between;}if(!is_class<typename T::value_type>::value&&print_T_endl)*this<<'\n';return *this;}template<typename...T>Writer&operator<<(const std::tuple<T...>&x){print_tuple<sizeof...(T)>::print(*this,x);if(print_T_endl)*this<<'\n';return *this;}template<typename T>typename std::enable_if_t<is_integral_ex<T>::value,Writer&>operator<<(T x){if(x==0)return putchar('0'),*this;if(x<0)putchar('-'),x=-x;static int sta[45];int top=0;while(x)sta[++top]=x%10,x/=10;while(top)putchar(sta[top]+'0'),--top;return*this;}template<typename T>typename std::enable_if_t<is_floating_point_ex<T>::value,Writer&>operator<<(T x){if(x<0)putchar('-'),x=-x;x+=pow(10,-print_precision)/2;mxdouble _=x;x-=(T)_;static int sta[45];int top=0;while(_)sta[++top]=_%10,_/=10;if(!top)putchar('0');while(top)putchar(sta[top]+'0'),--top;putchar('.');for(int i=0;i<print_precision;i++)x*=10;_=x;while(_)sta[++top]=_%10,_/=10;for(int i=0;i<print_precision-top;i++)putchar('0');while(top)putchar(sta[top]+'0'),--top;return*this;}template<typename T>typename std::enable_if_t<is_char<T>::value,Writer&>operator<<(const T&c){putchar(c);return*this;}Writer&operator<<(char*str){int cur=0;while(str[cur])putchar(str[cur++]);return *this;}Writer&operator<<(const char*str){int cur=0;while(str[cur])putchar(str[cur++]);return*this;}template<typename T1,typename T2>Writer&operator<<(const std::pair<T1,T2>&x){*this<<x.first<<print_between<<x.second;if(print_T_endl)*this<<'\n';return *this;}Writer&operator<<(const std::string&str){int st=0,ed=str.size();while(st<ed)putchar(str[st++]);return*this;}Writer(){}}cout;}
#define cin Fastio::cin
#define cout Fastio::cout
#define endl Fastio::endl
template<class Fun>class y_combinator_result{Fun fun_;public:template<class T>explicit y_combinator_result(T &&fun): fun_(std::forward<T>(fun)) {}template<class ...Args>decltype(auto) operator()(Args &&...args){return fun_(std::ref(*this), std::forward<Args>(args)...);}};template<class Fun>decltype(auto) y_combinator(Fun &&fun){return y_combinator_result<std::decay_t<Fun>>(std::forward<Fun>(fun));}
void init();void solve(int tc);
main()
{
init();int t=1;
cin>>t;
for(int tc=1;tc<=t;tc++)solve(tc);
}
void init()
{
}
void solve([[maybe_unused]]int tc)
{
int n,m;
cin>>n>>m;
vector<string>mp(n);
vector<vector<int>>sta(n,vector<int>(m));
cin>>mp;
if(mp[0][m-1]!='.'){cout<<"No\n";return;}
for(int x=0;x<n;x++)
for(int y=0;y<m;y++)
{
if(mp[x][y]=='.'&&(x!=0||y!=m-1)){cout<<"No\n";return;}
if(mp[x][y]=='U')
{
if(!x){cout<<"No\n";return;}
sta[x-1][y]|=1;
}
if(mp[x][y]=='D')
{
if(x+1==n){cout<<"No\n";return;}
sta[x+1][y]|=2;
}
if(mp[x][y]=='L')
{
if(!y){cout<<"No\n";return;}
sta[x][y-1]|=4;
}
if(mp[x][y]=='R')
{
if(y+1==m){cout<<"No\n";return;}
sta[x][y+1]|=8;
}
}
for(int x=0;x<n;x++)
for(int y=0;y<m;y++)
if(mp[x][y]=='C')
{
for(auto ok:{5,9,6,10})
if(sta[x][y]==ok)goto succ;
cout<<"No\n";return;
succ:;
}
else if(sta[x][y]){cout<<"No\n";return;}
cout<<"Yes\n";
}
这程序好像有点Bug,我给组数据试试?
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 0ms
memory: 3788kb
input:
2 4 4 CLD. UDCL DCLD CLRC 2 3 DRC CLU
output:
Yes No
result:
ok 2 lines
Test #2:
score: 0
Accepted
time: 2ms
memory: 3752kb
input:
100 47 81 UCRRRCR.CLURRCU.LLURDDRUDCC.DCUD.R.CURL.RURLC.LULLRDCDDDCC.CCUCLRLDLULULLUD.RL.R. LC.UDUDCL.RRCLRRURDRDL.CRD.LDURRCRU.D..LCUD.UDRCCURDLDCD.DDUC..ULLLDDCLDCL..C.R.C LLLLLULD.RLU.L.RURDLRCULCD.RCC..URD.LD.UCURDR.DUULUUD..LULR.RDURDDLRRRD.LCLLCD.D. LUCR.RCR.RRCL..DRURU.CLLDRCUULULRULCU.RD.UDR...
output:
No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No
result:
ok 100 lines
Test #3:
score: 0
Accepted
time: 0ms
memory: 3768kb
input:
100 10 10 D.D....D.. CLCLCLRCRC CL..U.CL.U UCL.RCU.D. .UDRCUCLCL ..CLU.U.RC .CL.CL.DDU .UCLUDRCCL D.U.RCDCLD CL...RCURC 11 5 .CLCL .U.U. ..RC. DRCU. CLU.D .CLRC DUDRC CLCLU D.... CLD.D .RCRC 2 8 D.RCCLD. CL.UURC. 7 10 .CL...CLCL .U.D.DU.U. .RCCLCL.RC ..UD.RCRCU D.RCD.U.U. CL.RCD.RC. .....CL.U. 7 10 ...
output:
No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No
result:
ok 100 lines
Test #4:
score: 0
Accepted
time: 0ms
memory: 3592kb
input:
100 5 32 .DCL.DCLRC.RCDRC...CLD.CLCL..... RCUDRCUCLU..UCLU.RCURC.U.UCL..CL CL.CL..U.RC...D.RCU.D.D...U.CLU. U.D.D.CL.DUD.RCCLUDRCDCL.DD.UD.D .RC.CLU..CLCL..U..CL.CL.RCCLRCRC 8 41 .RCDRCRCRCD..CL.RCD.CL..CLCL.RCRC.RCCL.RC RCUCLUDUDUCL.URC.UCLUDRCU.U...UDUD.UUCL.U DUCL..CLCLD...DUCL..RC.UCL.RCD.CLCLD....
output:
No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No
result:
ok 100 lines
Test #5:
score: 0
Accepted
time: 0ms
memory: 3956kb
input:
100 92 77 .RC.RCCL.D.CLCLD......D.RC.RCRCCLD.CL.RCCLCL..D.D.RCCL.DCL.D.CLRCD.D.D.CLRCD. ..U..UUCLCLU.UDCL.CL.RCRCUD.U.UU.CLU.RCUUDURCRC.CLDUUDRCU..CLUCLUCLCLCLURCUCL D.D.D.DUCLCL..CLD.U.CLCLURCCLD....CLCLU.DCL.UCL.DRCDRCDRC..CLDUCL.D..CL.DUD.. CLCLCLCLUDUDRC..CLCLU.U.D..URCCLDDU.U..RC.RC.U.RCRCCLRCD...
output:
No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No No
result:
ok 100 lines
Test #6:
score: 0
Accepted
time: 9ms
memory: 3916kb
input:
1059 2 2 RC .U 5 2 D. CL CL UD RC 2 8 DRCDRCD. CLUCLUCL 4 4 CLRC URCU RCUD .URC 11 2 D. CL RC DU CL RC DU CL RC DU CL 5 5 CLRC. URCUD CLURC UDDRC RCCLU 14 2 RC DU CL RC DU CL RC DU CL RC DU CL RC .U 4 7 CLDCLD. URCUDCL DRCDCLD CLUCLRC 17 2 D. CL RC DU CL RC DU CL RC DU CL RC DU CL RC DU CL 20 2 D. C...
output:
No Yes Yes No Yes Yes No Yes Yes Yes Yes No No No No No No No Yes Yes Yes Yes Yes No No No No Yes No No No Yes Yes Yes Yes Yes Yes No Yes No Yes No No Yes No No Yes Yes Yes Yes No Yes No Yes Yes Yes No No Yes No No No Yes No No Yes Yes Yes No Yes Yes Yes Yes Yes No No No No Yes Yes No No No Yes Yes ...
result:
ok 1059 lines
Test #7:
score: 0
Accepted
time: 6ms
memory: 3764kb
input:
81 100 100 CLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLD. URCURCURCURCURCURCURCURCURCURCURCURCURCURCURCURCURCURCURCURCURCURCURCURCURCURCURCURCURCURCURCURCUDCL CLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLD...
output:
Yes Yes Yes Yes Yes No Yes No Yes Yes Yes No Yes Yes No Yes No No No No Yes No No Yes No Yes Yes No No Yes No No Yes No Yes Yes Yes Yes No No Yes No Yes Yes No No No Yes No No No Yes No No Yes Yes Yes Yes Yes No Yes Yes Yes No No Yes No Yes No No No No No Yes Yes Yes No No No Yes Yes
result:
ok 81 lines
Test #8:
score: 0
Accepted
time: 2ms
memory: 4076kb
input:
15 250 250 CLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLD. URCURCURCURCURCURCURCURCURCURCURCURCUR...
output:
Yes No Yes Yes Yes Yes Yes No Yes Yes No No Yes Yes Yes
result:
ok 15 lines
Test #9:
score: 0
Accepted
time: 2ms
memory: 4156kb
input:
10 301 301 CLCLRCCLCLRCCLCLRCCLCLRCCLCLRCCLCLRCCLCLRCCLCLRCCLCLRCCLCLRCCLCLRCCLCLRCCLCLRCCLCLRCCLCLRCCLCLRCCLCLRCCLCLRCCLCLRCCLCLRCCLCLRCCLCLRCCLCLRCCLCLRCCLCLRCCLCLRCCLCLRCCLCLRCCLCLRCCLCLRCCLCLRCCLCLRCCLCLRCCLCLRCCLCLRCCLCLRCCLCLRCCLCLRCCLCLRCCLCLRCCLCLRCCLCLRCCLCLRCCLCLRCCLCLRCCLCLRCCLCLRCCLCLRCC...
output:
No Yes Yes No No Yes No No Yes Yes
result:
ok 10 lines
Test #10:
score: 0
Accepted
time: 6ms
memory: 4724kb
input:
4 497 497 CLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCLDCL...
output:
No Yes No Yes
result:
ok 4 lines
Extra Test:
score: 0
Extra Test Passed