Problem:Cow Art

Description
一个有关奶牛的鲜为人知的事实是她们都是红绿色盲,也就是说,在她们看来,红色和绿色是一样的(译者注:奶牛把这种颜色称作“红绿色”)。这使得我们设计的艺术作品难以同时符合人类和奶牛的审美口味。考虑一个由N x N格字符表示的方形绘画作品,其中每个字符为R(红),G(绿)或者B(蓝)一幅绘画如果有许多互不相同的着色“区域”,则我们认为它是有趣的。如果两个字符是直接相邻的(一个在另一个的东、南、西、北方向)且其表示的颜色相同,则这两个字符属于同一个区域。例如,下面这幅绘画作品:

RRRBB
GGBBB
BBBRR
BBRRR
RRRRR

如果由人类来看有4个区域(2个红色,1个蓝色和1个绿色区域),而如果由奶牛来看则只有3个区域(2个红绿色,1个蓝色区域)。现给你一副绘画作为输入,请计算该作品由人类和奶牛来看分别有多少个区域。
Input
第1行:整数N。
第2,1+N行:每行包含一个长度为N的字符串,表示绘画作品的一行。

Output
第1行:两个空格隔开的整数,分别给出由人类和奶牛欣赏绘画作品时会看见多少个区域。

Sample Input
5
RRRBB
GGBBB
BBBRR
BBRRR
RRRRR

Sample Output
4 3

重点的内容我给大家加黑了,它就是一道简单的搜索,分两次,人和奶牛(好无聊的题啊),所以应该这样搜索,代码理解:

#include<bits/stdc++.h>//可爱的万能头
using namespace std;
const int maxdep=10;
const int INF=0x7fffffff;//这个是无限大(备注一下)
int dep,found,fm[10],ans[10];
int g(int a,int b)
{return b?g(b,a%b):a;//好像是绝对值(我记得应该是)
}
void dfs(int a,int b,int k)
{if(k==dep+1) return;//如果超了返回if(b%a==0&&b/a>fm[k-1]){fm[k]=b/a;//存储if(!found||ans[k]>fm[k])memcpy(ans,fm,sizeof(fm));//复制一个给另外的看found=1;return;}int s=b/a;if(s<=fm[k-1])s=fm[k-1]+1;int t=(dep-k+1)*b/a;if(t>INF/b)t=INF/b;for(int i=s;i<=t;i++){fm[k]=i;int d=g(a*i-b,b*i);dfs((a*i-b)/d,(b*i)/d,k+1);//继续搜索}
}
int main()
{fm[0]=1;found=0;int a,b;cin>>a>>b;for(dep=1;dep<=maxdep;dep++){dfs(a,b,1);if(found)//判断{for(int j=1;j<=dep;j++){cout<<ans[j];if(j!=dep) cout<<" ";//输出}break;}}//好像又忘了打return 0;
}

今天不想讲大道理了,大家都懂:

#include<bits/stdc++.h>
using namespace std;
const int maxdep=10;
const int INF=0x7fffffff;
int dep,found,fm[10],ans[10];
int g(int a,int b)
{return b?g(b,a%b):a;
}
void dfs(int a,int b,int k)
{if(k==dep+1) return;if(b%a==0&&b/a>fm[k-1]){fm[k]=b/a;if(!found||ans[k]>fm[k])memcpy(ans,fm,sizeof(fm));found=1;return;}int s=b/a;if(s<=fm[k-1])s=fm[k-1]+1;int t=(dep-k+1)*b/a;if(t>INF/b)t=INF/b;for(int i=s;i<=t;i++){fm[k]=i;int d=g(a*i-b,b*i);dfs((a*i-b)/d,(b*i)/d,k+1);}
}
int main()
{fm[0]=1;found=0;int a,b;cin>>a>>b;for(dep=1;dep<=maxdep;dep++){dfs(a,b,1);if(found){for(int j=1;j<=dep;j++){cout<<ans[j];if(j!=dep) cout<<" ";}break;}}
}

爱你们哦!!!

Problem:Cow Art相关推荐

  1. 计算机视觉论文-2021-03-03

    本专栏是计算机视觉方向论文收集积累,时间:2021年3月3日,来源:paper digest 欢迎关注原创公众号 [计算机视觉联盟],回复 [西瓜书手推笔记] 可获取我的机器学习纯手推笔记! 直达笔记 ...

  2. 多说都是泪 GDUT 广东工业大学2016校赛决赛-网络赛 1170 Problem B Sward Art Online

    题目:点我 http://gdutcode.sinaapp.com/problem.php?cid=1031&pid=1 今天打网络个人赛,一开始就不太顺利,到了这个题,刚看到的时候,认为是手 ...

  3. 广东工业大学2016校赛决赛Problem B Sward Art Online(分组背包)

    Description     Krito为了打败第一层的boss - The eye of giant.SAO系统种一个人物可以装备4个物品,分别是左手武器,右手武器,首饰,盔甲,这些都可以增加一定 ...

  4. POJ 3268 D-Silver Cow Party

    http://poj.org/problem?id=3268 Description One cow from each of N farms (1 ≤ N ≤ 1000) conveniently ...

  5. The C10K problem原文翻译

    原文地址:http://www.cnblogs.com/fll/archive/2008/05/17/1201540.html The C10K problem 如今的web服务器需要同时处理一万个以 ...

  6. 【POJ】3268 Silver Cow Party (将有向图的边反转)

    问题链接:http://poj.org/problem?id=3268 [问题描述] One cow from each of N farms (1 ≤ N ≤ 1000) conveniently ...

  7. Art Generation with Neural Style Transfer-v2

    这是吴恩达老师深度学习课程第四课(卷积神经网络)第四周第二次的作业题目,不包含答案! Deep Learning & Art: Neural Style Transfer Welcome to ...

  8. 【BZOJ】3301: [USACO2011 Feb] Cow Line(康托展开)

    http://www.lydsy.com/JudgeOnline/problem.php?id=3301 其实这一题很早就a过了,但是那时候看题解写完也是似懂非懂的.... 听zyf神犇说是康托展开, ...

  9. 洛谷 3029 [USACO11NOV]牛的阵容Cow Lineup

    https://www.luogu.org/problem/show?pid=3029 题目描述 Farmer John has hired a professional photographer t ...

最新文章

  1. 在Wireshark中查找数据包
  2. Linux操作系统文档
  3. RabbitMQ基本概念(三)-Centos7下安装RabbitMQ3.6.1
  4. 用好这7个VS Code插件,前端编程效率蹭蹭涨
  5. expect实现交互式输入
  6. 开源天生就不是为了赚钱!
  7. 技术人生:不要忘记过去,也不要想着过去,向前看
  8. android AsyncTask 详细例子
  9. java线程知识点拾遗(CAS)
  10. Oracle掌管权限和角色
  11. 【66份】SaaS资料合集
  12. java查询mongodb数据_从mongodb中查询数据
  13. 我的单片机固件被人给破解了
  14. android简单悬浮窗源码,android悬浮窗源码分析
  15. 【模电】0013 反馈放大电路基础
  16. Sigmoid Belief Net
  17. 移动通信核心网络技术总结(三)EPC网络的结构及原理
  18. 【压缩感知合集3】压缩感知的背景与意义
  19. .Net Core快速开发平台源码 敏捷开发框架OA系统 CRM快速开发框架
  20. FCN训练不收敛的原因分析和最详细的FCN训练与测试自己的数据程序配置

热门文章

  1. Mac -bash: svnserve: command not found
  2. 论文分享 MobileNetV2: Inverted Residuals and Linear Bottlenecks
  3. 在MATLAB 中st_1是变量名,在Delphi中,根据变量标识符命名规则,st80不能用一个变量命名。...
  4. 向微软首席执行官史蒂夫·鲍尔默致敬
  5. bread是可数还是不可数_bread可数还是不可数
  6. 关于型材多计量的处理方法
  7. 东风风行t5evo噪音测试软件,高颜值颠覆你想象 测试东风风行T5 EVO
  8. 第 28 章 LCD—液晶显示中英文(附个人遇到的一些问题)
  9. oracle创建目录并赋权,ORACLE DIRECTORY目录管理步骤
  10. global using 的另类用法