一道细节题

因为英文和数字很少,所以就枚举要提醒的字母和数字,验证是否可以算出来然后再更新答案。

可以推出来的有以下几种:

  • 已知颜色,数字未知的只剩下一个

  • 已知数字,颜色未知的只剩下一个

  • 最后剩下一个

代码

#include<cstdio>
#include<cstring>
using namespace std;
int n,a[6][6],k1[6],tot1,k2[6],tot2,ans=25,v[6][6];
char c[3];
int main(){scanf("%d",&n);for(int i=1;i<=n;i++){scanf("%s",c);a[(c[0]=='R'?1:(c[0]=='G'?2:(c[0]=='B'?3:(c[0]=='W'?4:5))))][c[1]-'0']=1;}for(int i=0;i<(1<<5);i++){tot1=0;memset(k1,0,sizeof(k1));for(int k=0;k<5;k++)if(i>>k&1)tot1++,k1[k+1]=1;for(int j=0;j<(1<<5);j++){tot2=0;memset(k2,0,sizeof(k2));for(int k=0;k<5;k++)if(j>>k&1)tot2++,k2[k+1]=1;if(tot1+tot2>=ans)continue;memset(v,0,sizeof(v));for(int k=1;k<=5;k++)for(int l=1;l<=5;l++)if(a[k][l]&&k1[k]&&k2[l])v[k][l]=1;while(1){int t=0;for(int k=1;k<=5;k++){if(!k1[k])continue;int tot=0,p=0;for(int l=1;l<=5;l++)if(a[k][l]&&!v[k][l])tot++,p=l;if(tot==1)v[k][p]=1,t++;}for(int k=1;k<=5;k++){if(!k2[k])continue;int tot=0,p=0;for(int l=1;l<=5;l++)if(a[l][k]&&!v[l][k])tot++,p=l;if(tot==1)v[p][k]=1,t++;}if(!t)break;}int t=0;for(int k=1;k<=5;k++)for(int l=1;l<=5;l++)if(a[k][l]&&!v[k][l])t++;if(t<=1)ans=tot1+tot2;}}printf("%d",ans);return 0;
}

题解 CF442A 【Borya and Hanabi】相关推荐

  1. Codeforces Round #253 (Div. 1) A. Borya and Hanabi 暴力

    A. Borya and Hanabi Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/442/p ...

  2. 第六周 8.23-8.29

    8.23 POJ 3311 Hie with the Pie TSP问题. 先跑一遍Floyd.再状压dp. dp[i][j]表示经过集合i的点最后到达j的最短距离. 转移:取集合i中任意一点j.如果 ...

  3. [JS][dfs]题解 | #迷宫问题#

    题解 | #迷宫问题# 题目链接 迷宫问题 题目描述 定义一个二维数组 N*M ,如 5 × 5 数组下所示: int maze[5][5] = { 0, 1, 0, 0, 0, 0, 1, 1, 1 ...

  4. [JS][dp]题解 | #打家劫舍(一)#

    题解 | #打家劫舍(一)# 题目链接 打家劫舍(一) 题目描述 描述 你是一个经验丰富的小偷,准备偷沿街的一排房间,每个房间都存有一定的现金,为了防止被发现,你不能偷相邻的两家,即,如果偷了第一家, ...

  5. [JS]题解 | #魔法数字#

    题解 | #魔法数字# 题目链接 魔法数字 题目描述 牛妹给牛牛写了一个数字n,然后又给自己写了一个数字m,她希望牛牛能执行最少的操作将他的数字转化成自己的. 操作共有三种,如下: 在当前数字的基础上 ...

  6. [JS]题解 | #岛屿数量#

    题解 | #岛屿数量# 题目链接 岛屿数量 题目描述 时间限制:1秒 空间限制:256M 描述 给一个01矩阵,1代表是陆地,0代表海洋, 如果两个1相邻,那么这两个1属于同一个岛.我们只考虑上下左右 ...

  7. [JS] 题解:提取不重复的整数

    题解:提取不重复的整数 https://www.nowcoder.com/practice/253986e66d114d378ae8de2e6c4577c1 时间限制:1秒 空间限制:32M 描述 输 ...

  8. 洛谷-题解 P2672 【推销员】

    独门思路!链表加优先队列! 这题一望,贪心是跑不掉了,但是我贪心并不好,所以想到了一个复杂一些但思路更保稳的做法 思路: 1 因为是离线操作,所以我们可以倒着求,先求x=n的情况,因为那样直接就知道了 ...

  9. [洛谷1383]高级打字机 题解

    题解 这道题一看就珂以用主席树啊 这是一道神奇的题目,那么我们先敲一个主席树,然后维护一个数组len,表示下一次应该在len + 1插入, 之后对于T操作,在上一个版本的len + 1上直接执行插入 ...

最新文章

  1. 数据库-ADONET-在数据集DataSet中使用关系对象DataRelation处理关系
  2. 使用swipecard实现卡片视图左右滑动监听以及点击监听
  3. 【转】Dynamics 365中开发和注册插件介绍
  4. WEB三大攻击之—XSS攻击与防护
  5. 求给定精度的简单交错序列部分和 (15 分)
  6. 学习Spring(四) -- Spring的继承与依赖
  7. 为何大数据分析那么重要
  8. php5.2 zend解密,狐灵科技分享几款zend解密工具,可以解密zend5.2
  9. python强制关闭文件_python – 像“rm -f”中一样强制删除文件,或者强行从目录中取消链接文件路径...
  10. restTemplate接收image/jpeg格式
  11. android 获取粗略位置_从Android上的GPS提供商处获取*粗略*位置
  12. java倒序输出英文句子_java逆序英文句子中的单词顺序
  13. Windows8内核模式下开发NDIS应用-NDIS Filter讲解
  14. 将桌面的计算机图标改为,不小心把电脑桌面的图标都改为了windows meedia center怎么处理...
  15. How to revising your document, based on Silyn-Roberts, ch. 16
  16. 软件测试最全面试题,了解一下
  17. 如何在线免费合并PDF?
  18. C#QQ找茬助手(一)开始作弊!
  19. Oracle数据库描述错误的,下列有关数据库的描述 错误的是
  20. 降噪蓝牙耳机怎么选?入耳式降噪耳机排行榜10强

热门文章

  1. mysql中返回上级_MySql 获取当前节点及递归所有上级节点
  2. 2021-10-20马丁策略真的能盈利?
  3. USB转多串口产品设计
  4. Nodejs修改全局仓库设置方案
  5. 验证码的识别(极验验证码)
  6. OCR如何识别图片中的文字?
  7. LeetCode 546. 移除盒子 | Python
  8. 关于云服务及网络的几个基础概念
  9. OSChina 周五乱弹 ——因为脸大就在猛禽界得不到尊重!
  10. 本地域名设置和跨域行为