Black And White (DFS 训练题)
G - Black And White
#include <algorithm>
#include <cstdio>
using namespace std; int Map[][];
int n,m,k,cas=; //行,列,数量,案例几
int flag = ; //判定dfs return条件 struct Node{
int num,s; //颜色编号,该颜色数量
}tail[];
bool cmp(Node a,Node b) { return a.s>b.s;} void print() //输出函数
{
printf("Case #%d:\nYES\n",cas++);
for(int i=;i<=n;i++)
for(int j=;j<=m;j++)
printf(j==m?"%d\n":"%d ",Map[i][j]);
} void dfs(int y,int x)
{
for(int i =;i<=k;++i)
if(flag==) return;
else if(tail[i].s)
{
if(Map[y-][x]!=tail[i].num&&Map[y][x-]!=tail[i].num)
{
--tail[i].s; //改颜色数量-1;
Map[y][x] = tail[i].num;
if(y==n&&x==m&&flag!=)
{flag = ;print();return;} //如果格子填充完了,则输出
else if(x==m) //如果这一行填充完了,跳转至下一行
dfs(y+,);
else //否则前往这一行的下一个格子
dfs(y,x+);
++tail[i].s;
}
}
}
int main()
{
int T;
scanf("%d",&T); for(int num = ;num<=T;++num)
{
scanf("%d %d %d",&n,&m,&k);
for(int i = ;i<=k;++i)
{
scanf("%d",&tail[i].s);
tail[i].num = i;
}
sort(tail+,tail+k+,cmp);
if(tail[].s>(n*m+)/) {printf("Case #%d:\nNO\n",cas++); continue;}
flag = ;
dfs(,);
}
return ;
}
Black And White (DFS 训练题)的更多相关文章
- X-NUCA 2017 web专题赛训练题 阳光总在风雨后和default wp
0X0.前言 X-NUCA 2017来了,想起2016 web专题赛,题目都打不开,希望这次主办方能够搞好点吧!还没开赛,依照惯例会有赛前指导,放一些训练题让CTFer们好感受一下题目. 题目有一大 ...
- POJ 1321 棋盘问题(DFS板子题,简单搜索练习)
棋盘问题 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 44012 Accepted: 21375 Descriptio ...
- poj1564 Sum It Up dfs水题
题目描述: Description Given a specified total t and a list of n integers, find all distinct sums using n ...
- PAT乙级真题及训练题 1025. 反转链表 (25)
PAT乙级真题及训练题 1025. 反转链表 (25) 感觉几个世纪没打代码了,真是坏习惯,调了两小时把反转链表调出来了,心情舒畅. 这道题的步骤 数据输入,数组纪录下一结点及储存值 创建链表并储存上 ...
- 日常 java+雅思+训练题1
今天主要学了一些类似c中的一些语句,java也是一样类似的,只有一些点需要稍微注意一下,一些语句是新增的需要知道. 完完全全新学的知识就是class和instance的区别.如何创建实例.数据的封装. ...
- 咸鱼的ACM之路:DFS水题集
DFS的核心就是从一种状态出发,转向任意的一个可行状态,直到达到结束条件为止.(个人理解) 下面全是洛谷题,毕竟能找到测试点数据的OJ我就找到这一个....在其他OJ上直接各种玄学问题... P159 ...
- HDU 1728 逃离迷宫(DFS经典题,比赛手残写废题)
逃离迷宫 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submis ...
- 2016HUAS暑假集训训练题 G - Oil Deposits
Description The GeoSurvComp geologic survey company is responsible for detecting underground oil dep ...
- hdu 1045:Fire Net(DFS经典题)
Fire Net Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Su ...
随机推荐
- Blob, Uint8Aray, atob/btoa in lt IE9 browser
Blob, Uint8Aray, atob/btoa in lt IE9 browser 标签(空格分隔): compatibility 之前写的代码全部在Chrome调试,用IE打开发现各种问题. ...
- vue2.x 随记
1. 外部js调用vue的方法等 将vue实例中的this传入外部js文件(比如作为某方法的参数),即可访问传入实例的所有内容.调用该实例中子组件的方法,用$refs. 2. 路由参数 传递:vm.$ ...
- Exchange 2016中的削减内容
一.从Exchange 2013到Exchange 2016所废弃的功能. 在Exchange 2016中已经有部分Exchange 2013的功能不在提供支持. 1.体系结构 功能 注释和缓解操作 ...
- Dll注入:修改PE文件 IAT注入
PE原理就不阐述了, 这个注入是PE感染的一种,通过添加一个新节注入,会改变PE文件的大小,将原有的导入表复制到新节中,并添加自己的导入表描述符,最后将数据目录项中指向的导入表的入口指向新节. 步骤: ...
- 108. Convert Sorted Array to Binary Search Tree (building tree with resursion)
Given an array where elements are sorted in ascending order, convert it to a height balanced BST. Fo ...
- [USACO17FEB]Why Did the Cow Cross the Road II P
嘟嘟嘟 考虑dp. 对于ai,和他能匹配的bj只有9个,所以我们考虑从这9个状态转移. 对于ai 能匹配的一个bj,当前最大的匹配数一定是[1, j - 1]中的最大匹配数 + 1.然后用树状数组维护 ...
- 用jquery写的json省市县三级联动下拉
<form action="#" name="myform"> <label>省</label><select nam ...
- 【luogu P2939 [USACO09FEB]改造路Revamping Trails】 题解
题目链接:https://www.luogu.org/problemnew/show/P2939 本来说是双倍经验题,跟飞行路线一样的,结果我飞行路线拿deque优化SPFA过了这里过不了了. 所以多 ...
- 【题解】POJ1845 Sumdiv(乘法逆元+约数和)
POJ1845:http://poj.org/problem?id=1845 思路: AB可以表示成多个质数的幂相乘的形式:AB=(a1n1)*(a2n2)* ...*(amnm) 根据算数基本定理可 ...
- Jquery 1.8全选反选删除选中项实现
JQuery1.6以后,Prop的出现,让1.6以下的全选反选效果全部失效了.以下是修正后的版本: 全选反选效果: $(".checkbox").click(function () ...