QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#787132#9667. L-Covering CheckerN_z_AC ✓9ms4724kbC++236.9kb2024-11-27 10:00:222024-11-27 10:00:23

Judging History

This is the latest submission verdict.

  • [2024-11-27 10:00:23]
  • Judged
  • Verdict: AC
  • Time: 9ms
  • Memory: 4724kb
  • [2024-11-27 10:00:22]
  • Submitted

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