【POJ2996】Help Me with the Game
本题知识点:模拟(如果对国际象棋不熟悉的同学可以先百度一下)
题意很简单,就是让我们找出白棋跟黑棋每枚棋子的位置,并要按照一定的顺序输出( K -> Q -> R -> B -> N -> P ),清楚这一目的的话,实现只是时间上的问题了。
感觉该题可以用C语言里的枚举变量,但因为很少用,所以就懒得去琢磨了(好学的同学不要学我啊!),改用了比较麻烦的方式。
至于如何顺利地按顺序输出,这个见仁见智啦。
数据很小(快乐水题),即便暴力枚举也不会超时。
// POJ 2996
#include<iostream>
#include<cstdio>
using namespace std;
const int H = 17;
char ch[40][40];
struct node{
string pla;
}white[20], black[20];
char who_w[20] = {"KQRRBBNNPPPPPPPP"};
char who_b[20] = {"kqrrbbnnpppppppp"};
int main()
{
for(int i = 1; i <= H; i++){
scanf("%s", ch[i] + 1);
}
int w = 0, cnt_w = 0;
while(w < 16){
for(int i = 16; i >= 2; i -= 2){
bool ok = false;
for(int j = 3; j <= 31; j += 4){
if(ch[i][j] == who_w[w]){
string a = "";
if(w < 8) a += ch[i][j];
a += j / 4 + 'a';
if(i == 16) a += '1';
else if(i == 14) a += '2';
else if(i == 12) a += '3';
else if(i == 10) a += '4';
else if(i == 8) a += '5';
else if(i == 6) a += '6';
else if(i == 4) a += '7';
else if(i == 2) a += '8';
// cout << "a:" << a << endl;
white[cnt_w++].pla = a;
ch[i][j] = '*';
ok = true;
break;
}
}
if(ok) break;
}
w++;
}
// cout << endl;
int b = 0, cnt_b = 0;
while(b < 16){
for(int i = 2; i <= 16; i += 2){
bool ok = false;
for(int j = 3; j <= 31; j += 4){
if(ch[i][j] == who_b[b]){
string a = "";
if(b < 8) a += who_w[b];
a += j / 4 + 'a';
if(i == 16) a += '1';
else if(i == 14) a += '2';
else if(i == 12) a += '3';
else if(i == 10) a += '4';
else if(i == 8) a += '5';
else if(i == 6) a += '6';
else if(i == 4) a += '7';
else if(i == 2) a += '8';
// cout << "a:" << a << endl;
black[cnt_b++].pla = a;
ch[i][j] = '*';
ok = true;
break;
}
}
if(ok) break;
}
b++;
}
printf("White: ");
for(int i = 0; i < cnt_w; i++){
if(i != 0) cout << ",";
cout << white[i].pla;
} cout << endl;
printf("Black: ");
for(int i = 0; i < cnt_b; i++){
if(i != 0) cout << ",";
cout << black[i].pla;
} cout << endl;
return 0;
}
【POJ2996】Help Me with the Game的更多相关文章
- 【POJ2993】Emag eht htiw Em Pleh
题目传送门 本题知识点:模拟(如果对国际象棋不熟悉的同学可以先百度一下) 本题跟POJ2996是逆过来的操作,如果做过[POJ2996]的同学就不会对题意不理解的了. (以下默认您已AC[POJ299 ...
- 【转】ACM训练计划
[转] POJ推荐50题以及ACM训练方案 -- : 转载自 wade_wang 最终编辑 000lzl POJ 推荐50题 第一类 动态规划(至少6题, 和 必做) 和 (可贪心) (稍难) 第二类 ...
- Python高手之路【六】python基础之字符串格式化
Python的字符串格式化有两种方式: 百分号方式.format方式 百分号的方式相对来说比较老,而format方式则是比较先进的方式,企图替换古老的方式,目前两者并存.[PEP-3101] This ...
- 【原】谈谈对Objective-C中代理模式的误解
[原]谈谈对Objective-C中代理模式的误解 本文转载请注明出处 —— polobymulberry-博客园 1. 前言 这篇文章主要是对代理模式和委托模式进行了对比,个人认为Objective ...
- 【原】FMDB源码阅读(三)
[原]FMDB源码阅读(三) 本文转载请注明出处 —— polobymulberry-博客园 1. 前言 FMDB比较优秀的地方就在于对多线程的处理.所以这一篇主要是研究FMDB的多线程处理的实现.而 ...
- 【原】Android热更新开源项目Tinker源码解析系列之一:Dex热更新
[原]Android热更新开源项目Tinker源码解析系列之一:Dex热更新 Tinker是微信的第一个开源项目,主要用于安卓应用bug的热修复和功能的迭代. Tinker github地址:http ...
- 【调侃】IOC前世今生
前些天,参与了公司内部小组的一次技术交流,主要是针对<IOC与AOP>,本着学而时习之的态度及积极分享的精神,我就结合一个小故事来初浅地剖析一下我眼中的“IOC前世今生”,以方便初学者能更 ...
- Python高手之路【三】python基础之函数
基本数据类型补充: set 是一个无序且不重复的元素集合 class set(object): """ set() -> new empty set object ...
- Python高手之路【一】初识python
Python简介 1:Python的创始人 Python (英国发音:/ˈpaɪθən/ 美国发音:/ˈpaɪθɑːn/), 是一种解释型.面向对象.动态数据类型的高级程序设计语言,由荷兰人Guido ...
随机推荐
- Java操作JSON数据(1)--JSON-lib操作JSON数据
JSON-lib是一个java库,用于将bean.映射.集合.java数组和XML转换为JSON,或将JSON转为beans和DynaBeans.JSON-lib最后的版本是2.4,更新时间是2010 ...
- 【开发工具】- myeclipse安装主题
你想用IDEA那样炫酷的符合90后气质的主题吗?废话不多说,按照下边步骤就可以安装像IDEA一样超级炫酷的主题. 下载主题 1.进入插件官网(http://eclipsecolorthemes.org ...
- 获取form表单默认提交的返回值
1.经常用form表单提交的小伙伴有没有发现,form表单默认的提交是没有返回值的,而且默认提交成功之后是跳转,跳转的action的路径,下面写一下默认的提交如何获取到form表单的返回值json,并 ...
- 单词dyamaund钻石dyamaund英语
dyamaund 英文词汇,中文翻译为金刚石的;镶钻;用钻石装饰 中文名:镶钻;钻石装饰 外文名:dyamaund 目录 释义 dyamaund 读音:[?da??m?nd, ?da?m?nd] ...
- AudioToolbox--AudioQueue实现流播放接口
AudioMedia_ios.h // // AudioMedia_ios.h // mmsplayer // // Created by Weiny on 12-4-4. // Copyri ...
- Oracle恢复流程图
本图来自于网络,想当初小麦苗刚开始接触备份恢复的时候,就是靠着这张图来学习的,今天把这张图分享给大家,共勉. ............................................. ...
- day 20 作业
作业 1.下面这段代码的输出结果将是什么?请解释. class Parent(object): x = 1 class Child1(Parent): pass class Child2(Parent ...
- 不依赖Python第三方库实现梯度下降
认识 梯度的本意是一个向量(矢量),表示某一函数在该点处的方向导数沿着该方向取得最大值,即函数在该点处沿着该方向(此梯度的方向)变化最快,变化率最大(为该梯度的模), 我感觉, 其实就是偏导数向量方向 ...
- chattr和lsattr命令
原文 在一个技术群上看到这么一个问题: 问题出现在服务器被黑后!特意出记录下问题的解决方法. 由于被黑了,所以我们的很多命令将会出现使用不正常等问题,而这些问题大多是给人家添加或删除了某些权限所致.比 ...
- CentOS7安装VNC
#安装 yum -y install tigervnc-server 将配置表复制到etc .service 修改配置文件 vim /etc/systemd/system/vncserver@\:.s ...