poj2996

本题是简单的模拟,使用双层vector嵌套存储棋子的位置和种类,然后分别对每个vector进行排序

注意:排序方法为sort(piece[i].begin(), piece[i].end(), cmpWhite);
当然,cmpWhite是比较函数,可以不加比较函数,只用用前两个参数。

 

#include <iostream>
#include <vector>
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include<algorithm>
using namespace std;const int maxn = 9;int getid[150];struct Piece
{int x, y, d;Piece(){}Piece(int xx, int yy, char dd) :x(xx), y(yy), d(dd){}
};vector<vector<Piece> > piece(12);void init()
{string st;memset(getid, -1, sizeof(getid));getid[int('K')] = 0;getid[int('Q')] = 1;getid[int('R')] = 2;getid[int('B')] = 3;getid[int('N')] = 4;getid[int('P')] = 5;getid[int('k')] = 6;getid[int('q')] = 7;getid[int('r')] = 8;getid[int('b')] = 9;getid[int('n')] = 10;getid[int('p')] = 11;for (int i = 1; i < maxn; i++){getline(cin, st);for (int j = 1; j < maxn; j++){char ch;getchar();getchar();cin >> ch;getchar();if (getid[int(ch)] != -1)piece[getid[int(ch)]].push_back(Piece(9 - i, j, ch));}getline(cin, st);}
}bool cmpWhite(const Piece &a, const Piece &b)
{if (a.x == b.x)return a.y < b.y;return a.x < b.x;
}bool cmpBlack(const Piece &a, const Piece &b)
{if (a.x == b.x)return a.y < b.y;return a.x > b.x;
}void sortout()
{for (int i = 0; i < 6; i++)sort(piece[i].begin(), piece[i].end(), cmpWhite);for (int i = 6; i < 12; i++)sort(piece[i].begin(), piece[i].end(), cmpBlack);
}void output()
{bool first = true;cout << "White: ";for (int i = 0; i < 6; i++){for (unsigned int j = 0; j < piece[i].size(); j++){if (first)first = false;elsecout << ",";if (piece[i][j].d != 'P')cout << char(piece[i][j].d);cout << char(piece[i][j].y + 'a' - 1) << piece[i][j].x;}}cout << endl;first = true;cout << "Black: ";for (int i = 6; i < 12; i++){for (unsigned int j = 0; j < piece[i].size(); j++){if (first)first = false;elsecout << ",";if (piece[i][j].d != 'p')cout << char(piece[i][j].d - 'a' + 'A');cout << char(piece[i][j].y + 'a' - 1) << piece[i][j].x;}}
}int main()
{//freopen("D:\\t.txt", "r", stdin);init();sortout();output();return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/303787.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

听说你在学习算法?清华教授为你准备了一份独家秘籍!

也许您渴望进入国内外IT名企&#xff0c;却屡屡在算法类面试中折戟&#xff0c;苦恼不知如何破解困境&#xff1b;也许您是一位IT工程师&#xff0c;却因为算法能力不足而错过无数次的升职加薪&#xff0c;困扰不知如何突破瓶颈&#xff1b;也许您是一位大学生/中学生&#xff…

一文说通Dotnet操作MongoDB GridFS

补个技术债。这个主题一直在列表中&#xff0c;今天把它补上。还有一个原因&#xff0c;就是网上能查到的代码&#xff0c;大多已经过期了。今天写的&#xff0c;是按最新的SDK做的例子。一、MongoDB GridFS先说说 GridFS。MongoDB 是用 Bson 来存储数据的&#xff0c;每一行数…

linux path减少,Linux的环境变量PATH中所带来的问题及解决方法

Linux的环境变量PATH中所带来的问题及解决方法发布时间:2006-01-07 10:08:27来源:红联作者:yo本文主要讲述“.”在LINUX的环境变量PATH中所带来的问题&#xff0c;及解决的几种方法。正如很多人所知道的$PATH环境变量里存着一张目录列表&#xff0c;当用户要执行某一程序时&…

用VirtualWifi软件实现无线网卡同时连接多个AP。

2019独角兽企业重金招聘Python工程师标准>>> 用VirtualWifi软件实现无线网卡同时连接多个AP。 随着信息技术的发展&#xff0c;越来越多的人开始使用便捷的无线路由器&#xff08;AP&#xff09;组建家庭局域网。当你发现你周围有多个AP可以连接的时候&#xff0c;是…

职场感悟

1&#xff0c;尽量避免到有香港人和新加坡人做上司的外企&#xff0c;不是偏见&#xff0c;是很多事实的经验&#xff0c;不信你可以自己去尝试下&#xff0c;不过不要怪我没提醒过你。 2&#xff0c;不要去有第三方人事代理的外企&#xff0c;比如某人事会告诉你&#xff0c;你…

C语言 time函数 开销,C语言: 函数调用的开销

初学C语言的时候&#xff0c;我们有时会听说函数调用会有一定的开销&#xff0c;在进行了进一步学习之后&#xff0c;我们来看看原来听说的开销指的什么。下面是两个非常简单的样例&#xff0c;就不作解释了&#xff1a;函数调用版本C程序&#xff1a;#include int sum(int a, …

机器学习萌新必学的Top10算法

导读&#xff1a;在机器学习领域里&#xff0c;不存在一种万能的算法可以完美解决所有问题&#xff0c;尤其是像预测建模的监督学习里。所以&#xff0c;针对你要解决的问题&#xff0c;最好是尝试多种不同的算法。并借一个测试集来评估不同算法之间的表现&#xff0c;最后选出…

NET问答: C# 中有哪些 HttpPost 工具包

咨询区 Hooch&#xff1a;我会用 GET Request&#xff0c;但如何使用 Post Request 还得请教大家。回答区 Evan Mulawski&#xff1a;有多种方式可以使用 Http 的 GET 和 Post 请求。A方法&#xff1a;HttpClient (推荐)HttpClient 可用于 .NET Framework 4.5, .NET Standard 1…

wordpress安装 相关

64 位ubuntu 安装 32位兼容包apt-get install ia32-libs刚看了一下&#xff0c;wordpress才11个表太神奇了&#xff0c;这么复杂的系统&#xff0c;amazing参考以下文章http://9hills.us/2011/01/wordpress/http://dueam.org/2010/09/ubuntu-server-%E5%AE%89%E8%A3%85%E4%B8%8…

分支结构程序案例c语言,C语言学习之三——分支结构程序

运算符优先级&#xff1a;如下所示&#xff1a;image.png关系运算符和表达式关系运算符定义&#xff1a;在程序中经常需要比较两个量的大小关系,以决定程序下一步的工作。因此使用关系运算符进行比较(注&#xff1a;比较后的返回值为boolean值&#xff0c;即0或1(真为1&#xf…

老刘在微软Ignite China大会上聊低代码

观点概要1.低代码平台不是新概念&#xff0c;这种概念的上一个类似的提法是“所见即所得”。目前的低代码平台是依靠技术手段&#xff0c;不仅让所见即所得&#xff0c;还可以让一部分“所不见也所得”&#xff0c;比如背后的数据结构&#xff0c;业务逻辑&#xff0c;权限认证…

诺基亚首款Windows Phone智能手机将在年内推出

诺基亚高级官员星期日称&#xff0c;第一款采用微软Windows Phone操作系统的诺基亚智能手机的目标发布日期将在几天之内确定下来。诺基亚的目标是在将这种手机推向市场。诺基亚负责智能设备的执行副总裁乔哈洛&#xff08;Jo Harlow&#xff09;称&#xff0c;诺基亚和微软的技…

c语言四个数找大wxyz,2015年计算机二级《C语言》考试上机测试题(7)

31.有以下程序&#xff1a;#includemain(  ){char a[20]&#xff0c;b[20]&#xff0c;c[20];scanf("%s%s"&#xff0c;a&#xff0c;b);gets(c);printf("%S%S%s\n"&#xff0c;a&#xff0c;b&#xff0c;c);}程序运行时从第一列开始输入&#xff1a;Th…

IOT必备之MQTT结构分析,不进来看看?【后附源码】

全网唯一物联网MQTT协议报文结构分析以及基于C#代码的报文组装实现介绍MQTT是一种基于TCP/IP协议的应用层协议&#xff0c;它规定了不同应用之间进行数据交换时的传送格式。既然是协议&#xff0c;理论上可以被任何开发语言实现它&#xff0c;以运行在任何平台&#xff0c;这个…

要成为年薪五十万的数据分析师,除了技术还需要什么?

超过59%企业&#xff0c;将提高数据分析岗位数量----一流的数据分析师&#xff0c;年薪轻松突破50万想必同学们看到这个数据并不惊讶&#xff0c;如今在中国&#xff0c;各行各业对数据分析岗位的需求日益提高&#xff1a;在线社交媒体&#xff0c;希望通过数据时刻洞察用户关注…

ISAPI_Rewrite伪静态配置

第一:首先我们需要下载一个ISAPI_Rewrite,有精简版和完全版,一般精简版只能对服务器全局进行配置,而完整版可以对服务器上的各个网站进行伪静态配置.对于个人站长来说,精简版就足够了. 下载&#xff1a;http://www.isapirewrite.com/download/isapi_rwl_0055.msi 第二:下载完…

c语言电脑蓝屏代码,电脑蓝屏代码0x0000001a的解决方法

遇到蓝屏&#xff0c;第一时间记录停机码&#xff0c;如有导致蓝屏的文件名&#xff0c;那么排查的范围就会缩小。下面小编就为大家介绍电脑蓝屏代码0x0000001a的解决方法介绍&#xff0c;希望能对大家有所帮助&#xff01;方法/步骤1、先看这张截图的停机码所在位置。STOP后面…

关于序列建模,是时候抛弃RNN和LSTM了

作者表示&#xff1a;我们已经陷入 RNN、LSTM 和它们变体的坑中很多年&#xff0c;是时候抛弃它们了&#xff01;在 2014 年&#xff0c;RNN 和 LSTM 起死回生。我们都读过 Colah 的博客《Understanding LSTM Networks》和 Karpathy 的对 RNN 的颂歌《The Unreasonable Effecti…

如何运用并行编程Parallel提升任务执行效率

本文来自小易&#xff0c;【DoTNET技术圈】公众号已获得转载授权。《.NET并发变成实战》读后感&#xff1a;并行编程Parallel手打目录&#xff1a;一、前言二、任务并行库&#xff08;TPL&#xff09;的介绍三、Parallel.Invoke的使用四、Parallel.For的使用五、Parallel.ForEa…

VMware View 与Citrix XenDesktop对决之用户体验篇

看看真实的VMware View 与Citrix XenDesktop对比。 用户体验作为虚拟桌面成功的关键因素&#xff0c;看看VMware View如何在这方面立于不败之地。 对于测试中暴露的差异&#xff0c;您也许会觉得困惑。其实当您了解完下面这些&#xff0c;就全明白了。 Citrix的XenDesktop使用的…