POJ 1414 暴搜
题意比较复杂 (但是很好理解)
大概意思是给你等边三角形(详见题目中的图)。
最后一行有n个数,下一次要填的数是c。
里面预先已经填好了数字。(0为未填)
得分的标准是这个分数的连通块周围没有空的地方。 就能得到连通块大小的分。
失分是 当前块能得分,但不巧,当前块内的数字是要填的数字。就失去连通块大小的分。
求这次填块最多可以得多少分。
不能不填,即分数可以为负。
思路:
其实这个题并不难。
枚举所有没有填过的块。暴搜一遍。。。 搞定。
// by SiriusRen
#include <cstdio>
#include <cstring>
#include <algorithm>
#define ff for(int i=1;i<=n;i++)for(int j=1;j<=i;j++)
using namespace std;
int n,c,vis[11][11],a[11][11],xx[]={1,0,-1,0,-1,1,0},yy[]={0,1,0,-1,-1,1,0},cnt,flag,temp,ans;
bool check(int x,int y){return x>=1&&y<=x&&y>=1&&x<=n;}
void dfs(int x,int y,int t){
vis[x][y]=1;cnt++;
for(int i=0;i<6;i++){
int dx=x+xx[i],dy=y+yy[i];
if(!vis[dx][dy]&&check(dx,dy)){
if(a[dx][dy]==t)dfs(dx,dy,t);
else if(!a[dx][dy])flag=1;
}
}
}
int main(){
while(scanf("%d%d",&n,&c)&&(n||c)){
ans=-0x3fffffff;
ff scanf("%d",&a[i][j]);
ff if(!a[i][j]){
memset(vis,0,sizeof(vis));
a[i][j]=c;
temp=0;
for(int k=0;k<=6;k++){
cnt=flag=0;
int dx=i+xx[k],dy=j+yy[k];
if(check(dx,dy)&&!vis[dx][dy]&&a[dx][dy])dfs(dx,dy,a[dx][dy]);
if(!flag){
if(a[dx][dy]==c)temp-=cnt;
else temp+=cnt;
}
}
ans=max(ans,temp);
a[i][j]=0;
}
printf("%d\n",ans);
}
}
一不小心还进了Code Length前三 哈哈哈哈
POJ 1414 暴搜的更多相关文章
- POJ 1945 暴搜+打表 (Or 暴搜+判重)
思路: 呃呃 暴搜+打表 暴搜的程序::稳稳的TLE+MLE (但是我们可以用来打表) 然后我们就可以打表过了 hiahiahia 可以证明最小的那个数不会超过200(怎么证明的我也不知道),然后就直 ...
- POJ 3188暴搜
题意: 思路: 裸的暴搜 --. 但是要注意如果你不用所有的按键就能输出最优解的话一定要把所有的字母都安排到一个位置-. 我的一群PE就是这么来的-- 为什么写的人这么少-- // by Sirius ...
- POJ 2132 暴搜OR Floyd
题意: 给你一个邻接矩阵(n<=25)问所有1到2路径的gcd的lcm是多少. 一些经验(WA/TLE的经验): 1. 无脑暴搜 是会TLE的--. 2. 关于精度 dyf神牛说了:long l ...
- POJ 2133 暴搜
题意: 思路: 按照题意暴搜 注意 如果目标串==给的串 答案是2 //By SiriurRen #include <cstdio> #include <cstring> #i ...
- POJ - 2676 暴搜 注意实现细节
经典sudoku问题 按部就班就好 一定要注意细节 大于1还是大于等于1 r c越界判断 judge时0的特判 blabla居然磨了2个小时 改了很多地方所以实现得有点冗余,反正能A吧 /*H E A ...
- POJ 1543 暴搜
题意:输出a^3=b^3+c^3+d^3的所有a,b,c,d的值. b,c,d由小到大且b,c,d都大于1. 思路: 按照题意写就好.... // by SiriusRen #include < ...
- POJ 1950暴搜
思路: 暴力枚举好了..每回判断一下-- 用long long会超时 但是10^20会爆int... 不过仔细想一想 超过10^9的数肯定拼不回0啊-- 猥琐用int AC了 (当然可以打表 ) // ...
- poj 3080 Blue Jeans(水题 暴搜)
题目:http://poj.org/problem?id=3080 水题,暴搜 #include <iostream> #include<cstdio> #include< ...
- [POJ 1204]Word Puzzles(Trie树暴搜&AC自己主动机)
Description Word puzzles are usually simple and very entertaining for all ages. They are so entertai ...
随机推荐
- 利用JavaScript制作计算器
<html> <head> <meta charset="utf-8"> <title>无标题文档</title> &l ...
- 【Oracle】Rman简介
1.备份和恢复功能的用途: –保护数据 -介质故障 -用户错误 -应用程序错误 –数据保存和历史数据保留 –数据传输 2.典型的备份和恢复任务 –通过配置数据库实现可恢复 –定义备份计划 –对不同类型 ...
- Absolute Horizontal And Vertical Centering In CSS
Quick CSS Trick: How To Center an Object Exactly In The Center Centering in CSS: A Complete Guide Ab ...
- Oracle 11g XE 与 Oracle SQL Developer 的配置与使用(重制版)
Oracle 11g XE 与 Oracle SQL Developer 的配置与使用(重制版) 前提概要 项目上需求要适应Oracle数据库,当然这和某EF框架也有关. 因为Oracle 的表名和列 ...
- 深入理解 Swift 派发机制
原文: Method Dispatch in Swift作者: Brain King译者: kemchenj 译者注: 之前看了很多关于 Swift 派发机制的内容, 但感觉没有一篇能够彻底讲清楚这件 ...
- 添加图标:before 和 :after css中用法
#sTitle:after{ position: absolute; top: 2px; font-family: "FontAwesome"; content: "\f ...
- JDK源码中的英文注释翻译(Class)
public final class Class<T> implements java.io.Serializable, GenericDeclaration, Type, Annotat ...
- Centos7 单节点安装 FastDFS + FastDHT服务
Centos7 单节点安装 FastDFS + FastDHT服务 1.安装gcc(编译时需要) FastDFS是C语言开发,安装FastDFS需要先将官网下载的源码进行编译,编译依赖gcc环境,如果 ...
- javase 异常处理
1.简述什么是异常.异常的继承体系? 异常就是java代码块在运行时出现的错误,有编译错误和运行错误, Throwable是所有异常的父类它包含了error和Exception两个子类. 其中e ...
- 如何添加删除子网卡eth0:1(linux案例)
这种方法实现了单网卡多IP,我的系统是centos7的,如何添加删除子网卡IP详细请看下面操作例子 添加子网卡IP:ifconfig ens3:1 192.168.0.100/24 ...