问题 L: 「Usaco2005 Feb」竞选划区O(∩_∩)O 纯属的暴力
题目描述
如果一头奶牛在另一头上下左右四个格子中的任一格里,我们说它们相连. 奶牛要大选了.现在有一只杰尔西奶牛们想选择7头相连的奶牛,划成一个竞选区,使得其中它们品种的奶牛比荷斯坦的多.
要求你编写一个程序求出方案总数.
输入
输出
样例输入 Copy
HHHHH JHJHJ HHHHH HJHHJ HHHHH
样例输出 Copy
2
提示

解题思路
- 这题感觉就是就是一个巨暴力的暴力。一开始还不敢打,后来看到是道黄题,直接暴力就过了,然后加一个优化还挺快的。。。
- 每一次去拓展7个点,然后判断一下会可不可以,然后就可以找到答案。
- 可以非常明显的发现,对于一张图,会有很多种拓展方法,其中必有很多重复的,然后就需要去判重。
- 判重有很多种方法,可以hash还可以用什么set...
- set的一些用法可以去百度,或者去这里(传送门)
暴力的代码:
#include<cstdio>
const int mx[]={,,,-};
const int my[]={,,-,};
bool map[][];
int d[][];
int s[];
int nx[],ny[];
int q[];
int ans;
inline bool mark()
{
int i,j,sx,sy,xx,yy,sum=,t=,w=;
for (i=;i<=;i++)for(j=;j<=;j++)d[i][j]=;
for (i=;i<=;i++)
{
ny[i]=s[i]%;nx[i]=s[i]/;
if (ny[i])nx[i]++;
if (!ny[i])ny[i]=;
d[nx[i]][ny[i]]=i;
}
q[]=;d[nx[]][ny[]]=;sum=map[nx[]][ny[]];
while (t<w)
{
xx=nx[q[++t]];
yy=ny[q[t]];
for (int k=;k<;k++)
{
sx=xx+mx[k];sy=yy+my[k];
if (sx>&&sy>&&sx<&&sy<&&d[sx][sy])
{
q[++w]=d[sx][sy];
d[sx][sy]=;
sum+=map[sx][sy];
}
}
}
return w==&&sum>;
}
int main()
{
for (int i=;i<=;i++)
for (int j=;j<=;j++)
{
char ch=getchar();
while (ch!='H'&&ch!='J')ch=getchar();
if (ch=='J')map[i][j]=;
}
for (s[]=;s[]<=;s[]++)
for (s[]=s[]+;s[]<=;s[]++)
for (s[]=s[]+;s[]<=;s[]++)
for (s[]=s[]+;s[]<=;s[]++)
for (s[]=s[]+;s[]<=;s[]++)
for (s[]=s[]+;s[]<=;s[]++)
for (s[]=s[]+;s[]<=;s[]++)
if (mark())ans++;
printf("%d",ans);
}
问题 L: 「Usaco2005 Feb」竞选划区O(∩_∩)O 纯属的暴力的更多相关文章
- 1675: [Usaco2005 Feb]Rigging the Bovine Election 竞选划区(题解第二弹)
1675: [Usaco2005 Feb]Rigging the Bovine Election 竞选划区 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: ...
- 1675: [Usaco2005 Feb]Rigging the Bovine Election 竞选划区(题解第一弹)
1675: [Usaco2005 Feb]Rigging the Bovine Election 竞选划区 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: ...
- bzoj1675 [Usaco2005 Feb]Rigging the Bovine Election 竞选划区
Description It's election time. The farm is partitioned into a 5x5 grid of cow locations, each of wh ...
- bzoj:1675 [Usaco2005 Feb]Rigging the Bovine Election 竞选划区
Description It's election time. The farm is partitioned into a 5x5 grid of cow locations, each of wh ...
- 【BZOJ】1675: [Usaco2005 Feb]Rigging the Bovine Election 竞选划区(暴力dfs+set判重)
http://www.lydsy.com/JudgeOnline/problem.php?id=1675 一开始我写了个枚举7个点....... 但是貌似... 写挫了. 然后我就写dfs.. 判重好 ...
- 「Usaco2005 Dec」清理牛棚(spfa秒杀线段树dp)
约翰的奶牛们从小娇生惯养,她们无法容忍牛棚里的任何脏东西. 约翰发现,如果要使这群有洁癖的奶牛满意,他不得不雇佣她们中的一些来清扫牛棚, 约翰的奶牛中有N(1≤N≤10000)头愿意通过清扫牛棚来挣一 ...
- 「BZOJ 2534」 L - gap字符串
「BZOJ 2534」 L - gap字符串 题目描述 有一种形如 \(uv u\) 形式的字符串,其中 \(u\) 是非空字符串,且 \(v\) 的长度正好为 \(L\), 那么称这个字符串为 \( ...
- [bzoj1733][Usaco2005 feb]Secret Milking Machine 神秘的挤奶机_网络流
[Usaco2005 feb]Secret Milking Machine 神秘的挤奶机 题目大意:约翰正在制造一台新型的挤奶机,但他不希望别人知道.他希望尽可能久地隐藏这个秘密.他把挤奶机藏在他的农 ...
- BZOJ3392: [Usaco2005 Feb]Part Acquisition 交易
3392: [Usaco2005 Feb]Part Acquisition 交易 Time Limit: 5 Sec Memory Limit: 128 MBSubmit: 26 Solved: ...
随机推荐
- 如何正确遍历删除List中的元素(普通for循环、增强for循环、迭代器iterator、removeIf+方法引用)
遍历删除List中符合条件的元素主要有以下几种方法: 普通for循环 增强for循环 foreach 迭代器iterator removeIf 和 方法引用 其中使用普通for循环容易造成遗漏元素的问 ...
- Chrome 和 Chromedriver 的安装和配置
1.Chrome 下载安装地址:https://www.google.com/intl/zh-CN_ALL/chrome/ 2.Chromedriver的安装 方法一: (1) brew cask i ...
- 秘制CSP模板
不定期更细中...... 声明1:由于js的问题导致VIEW CODE按钮只能点"I"附近才能展开代码 声明2:为了排版的美观,所有的解释以及需要留意的地方我都放在代码中了 声明3 ...
- MySQL make_set()的用法
MAKE_SET(bits,str1,str2,…)返回一个设定值(含子字符串分隔字符串","字符),在设置位的相应位的字符串.str1对应于位0,str2到第1位,依此类推.在s ...
- linux下python相关命令
若本机已安装python2,尽量不要动现有的python2,额外安装python3即可. 1.安装python3.6(centos下安装python3自带pip和setuptools) python3 ...
- 17.Linux搭建网络仓库
1.搭建一个网络仓库 服务端:10.0.0.201 1.准备软件包(1.光盘 2.缓存 3.联网下载 4.同步) 1.挂载光盘 mount /dev/cdrom 2.通过ftp共享软件包存放的目录 y ...
- spark运行java-jar:Exception in thread "main" java.io.IOException: No FileSystem for scheme: hdfs
今天碰到的一个 spark问题,困扰好久才解决 首先我的spark集群部署使用的部署包是官方提供的 spark-1.0.2-bin-hadoop2.tgz 部署在hadoop集群上. 在运行java ...
- 微信分享—ios和安卓机制居然不一样!
实际项目中,在做微信分享追踪的时候,遇到了一个百思不得其解的问题. 在加入了用户分享追踪功能之后,页面已经加载完成的情况下,安卓分享功能没有任何问题,ios却总是分享失败. 关于ios和安卓设备的差 ...
- python爬取旅游数据+matplotlib简单可视化
题目如下: 共由6个函数组成: 第一个函数爬取数据并转为DataFrame: 第二个函数爬取数据后存入Excel中,对于解题来说是多余的,仅当练手以及方便核对数据: 后面四个函数分别对应题目中的四个m ...
- 玩转PubSubClient MQTT库
1.前言 在ESP8266学习系列中,博主一直使用HTTP协议.HTTP连接属于短连接,而在物联网应用中,广泛应用的却是MQTT协议.所以,本篇我们将学习Arduino平台上的MQTT实现库 ...