首页 > 其他分享 >[Codeforces] CF1579C Ticks

[Codeforces] CF1579C Ticks

时间:2023-12-21 19:23:10浏览次数:35  
标签:Ticks 20 格子 int CF1579C Codeforces dy2 dy1 now

CF1579C Ticks

题意

\(n \times m\) 的棋盘,左上角和右下角坐标分别为 \((1, 1), (n, m)\),一开始每个格子为白色。

每次操作可以选择一个格子 \((x, y)\) 以及左上角和右上角方向的 \(d\) 个连续格子染成黑色,并将其称为一个大小为 \(d\) 的对勾图案。如果多个对勾图案重复对一个格子染色,该格子颜色保持黑色不变。

现在给你一个棋盘,请问棋盘上的黑色格子是否可以由若干个大小至少为 \(k\) 的对勾图案染色而成。

思路

一道明显的深搜

从下往上枚举(即,从根开始枚举)

最开始,先搜索一下判断能否画出一个大于\(k\)的对勾,如果可以,那么就开始画

最后,判断一下是否每一个需要被染色的格子都被染色了

代码

#include<bits/stdc++.h>
#define int long long
using namespace std;
char c[20][20];
int n,m,k,minn;
bool vis[20][20];
void dfs(int x,int y,int now)
{
	// cout<<x<<" "<<y<<":\n";
	int dx=x-now-1,dy1=y-now-1,dy2=y+now+1;
	if(dx<1 || dy1<1 || dy2<1 || dx>n || dy1>m || dy2>m || c[dx][dy1]!='*' || c[dx][dy2]!='*') minn=min(now,minn);
	else
	{
		// cout<<dx<<": dy={"<<dy1<<" ,"<<dy2<<"}\n";
		now++;
		vis[dx][dy1]=1,vis[dx][dy2]=1;
		dfs(x,y,now);
	}
}
bool check(int x,int y,int now)
{
	int dx=x-now-1,dy1=y-now-1,dy2=y+now+1;
	if(dx<1 || dy1<1 || dy2<1 || dx>n || dy1>m || dy2>m || c[dx][dy1]!='*' || c[dx][dy2]!='*') return now>=k;
	else
	{
		now++;
		return check(x,y,now);
	}
}
void run()
{
	cin>>n>>m>>k;minn=1e9+10;
	for(int i=1;i<=n;i++)
		for(int j=1;j<=m;j++)
		{
			cin>>c[i][j];
			vis[i][j]=0;
		}
	for(int i=n;i>=1;i--)
	{
		for(int j=m;j>=1;j--)
		{
			if(c[i][j]=='*' && check(i,j,0))
			{
				dfs(i,j,0);
				vis[i][j]=1;
			}
		}
	}
	bool ans=1;
	for(int i=1;i<=n && ans;i++)
		for(int j=1;j<=m && ans;j++)
		{
			if(vis[i][j]==0 && c[i][j]=='*') ans=0;
		}
	cout<<(ans?"Yes":"No")<<endl;
}
signed main()
{
	int t;
	cin>>t;
	while(t--) run();
	system("pause");
	return 0;
}


标签:Ticks,20,格子,int,CF1579C,Codeforces,dy2,dy1,now
From: https://www.cnblogs.com/lyk2010/p/17919924.html

相关文章

  • [Codeforces] CF1811E Living Sequence
    CF1811ELivingSequence这道题洛谷题解的思路比我的更好,可以参考一下题解,但是没人提到我这种做法题意给定一个正整数\(k\)\((1\lek\le10^{12})\),请你输出第\(k\)个数字里没有4的正整数。思路设\(f_i\)表示前\(10^i\)个\(i\)位数里边不含4的数的个数,列举几个如......
  • [Codeforces] CF1817A Almost Increasing Subsequence
    CF1817AAlmostIncreasingSubsequence题意给定长度为\(n\)一个序列\(a\)以及\(q\)次询问,每次询问给出\(l\)和\(r\),找出序列\(a\)在\([l,r]\)内最长的几乎递增子序列。对于几乎递增的定义:如果一个序列中不存在连续的三个数\(x\),\(y\),\(z\),使得\(x\gey\ge\......
  • Codeforces Round 916 (Div. 3)
    目录写在前面ABCDE1/E2FG1G2写在最后写在前面比赛地址:https://codeforces.com/contest/1914。第二天没早八打个div3休闲娱乐保持下手感,然而div3都AK不了了,纯纯废物一个,天天上大学导致的。唉,一学期碰上好几个byd恼弹老师,大学一秒也不想上了,折磨。马娘台服马上1.5周......
  • Educational Codeforces Round 160 (Rated for Div. 2)
    A.RatingIncrease字符串处理#include<bits/stdc++.h>usingnamespacestd;voidsolve(){ strings; cin>>s; intn=s.size(); s=""+s; for(inti=1;i<=n-1;i++){ stringt=""; for(intj=1;j<=i;j++){ t=t+s[j]; } ......
  • Codeforces Round 916 (Div. 3)
    A.ProblemsolvingLogmap枚举字母#include<bits/stdc++.h>usingnamespacestd;voidsolve(){ intn; strings; cin>>n>>s; intans=0; s=""+s; map<char,int>mp; for(inti=1;i<=n;i++){ mp[s[i]]++; } for(autoc:mp)......
  • Codeforces Round 916 (Div. 3)(A~E2)
    A统计一下每个字母的出现次数然后输出即可#include<bits/stdc++.h>#definerep(i,a,b)for(registerinti=(a);i<=(b);++i)#definefep(i,a,b)for(registerinti=(a);i>=(b);--i)#definelsp<<1#definersp<<1|1#definePIIpair<int,int&......
  • [Codeforces] CF1795C Tea Tasting
    CF1795CTeaTasting题意有\(n\)个人和\(n\)杯茶,第\(i\)个人每次会喝\(b_i\)毫升的茶。第\(i\)杯茶有\(a_i\)毫升。总共会喝\(n\)轮茶,第\(j\)轮第\(i\)个人会尝试喝第\(i+1-j\)杯茶。喝的量为\(\min(a_{i+1-j},b_i)\)毫升,并且使\(a_{i+1-j}\)减少\(\mi......
  • Educational Codeforces Round 160 (Rated for Div. 2) A~C
    A.RatingIncrease题意:将一个字符串分成两个整数a和b,要求没有前导0,且a<b思路:遍历字符串s,若当前位置不是0,则拆分字符串,比较大小//#include<bits/stdc++.h>#include<iostream>#include<string>#include<cstring>#include<vector>#include<algorithm>#inclu......
  • Educational Codeforces Round 160 (Rated for Div. 2)
    基本情况A题秒了。B题卡了实在太久,BC题最后虽然都过了,但是耗时太久。感觉C对我来说更好写。B.SwapandDelete经典+3。总是一条路偏要走到黑了才会想着换思路,早该换了。一开始想了一大堆乱七八糟的思路,但都错了。后面往简单了想,这题毕竟最后必须要左对齐的,直接从左往右比......
  • 【题解】CodeForces-1913
    CodeForces-1913ARatingIncrease依题意模拟。提交记录:Submission-CodeForcesCodeForces-1913BSwapandDelete交换免费就是能任意重排,从头开始尽量填相反的,剩下只能删去了。提交记录:Submission-CodeForcesCodeForces-1913CGamewithMultiset从大到小能减则减一定......