poj2996(Help Me with the Game)

题目大意:

同2993、 这题是根据棋盘,分别输出棋子的位置。

解题思路:

模拟再模拟、我写了8000+B  你能信?我是多有耐心呢!

代码:

  1 #include <algorithm>
2 #include <iostream>
3 #include <sstream>
4 #include <cstdlib>
5 #include <cstring>
6 #include <cstdio>
7 #include <string>
8 #include <bitset>
9 #include <vector>
10 #include <queue>
11 #include <stack>
12 #include <cmath>
13 #include <list>
14 #include <map>
15 #include <set>
16 using namespace std;
17 /***************************************/
18 #define ll long long
19 #define int64 __int64
20 /***************************************/
21 const int INF = 0x7f7f7f7f;
22 const double eps = 1e-8;
23 const double PIE=acos(-1.0);
24 const int dx[]= {0,-1,0,1};
25 const int dy[]= {1,0,-1,0};
26 const int fx[]= {-1,-1,-1,0,0,1,1,1};
27 const int fy[]= {-1,0,1,-1,1,-1,0,1};
28 /***************************************/
29 void openfile()
30 {
31 freopen("data.in","rb",stdin);
32 freopen("data.out","wb",stdout);
33 }
34 /**********************华丽丽的分割线,以上为模板部分*****************/
35
36 int main()
37 {
38 /* char board[18][35]=
39 {
40 "",
41 " +---+---+---+---+---+---+---+---+",
42 " |:::|...|:::|...|:::|...|:::|...|",
43 " +---+---+---+---+---+---+---+---+",
44 " |...|:::|...|:::|...|:::|...|:::|",
45 " +---+---+---+---+---+---+---+---+",
46 " |:::|...|:::|...|:::|...|:::|...|",
47 " +---+---+---+---+---+---+---+---+",
48 " |...|:::|...|:::|...|:::|...|:::|",
49 " +---+---+---+---+---+---+---+---+",
50 " |:::|...|:::|...|:::|...|:::|...|",
51 " +---+---+---+---+---+---+---+---+",
52 " |...|:::|...|:::|...|:::|...|:::|",
53 " +---+---+---+---+---+---+---+---+",
54 " |:::|...|:::|...|:::|...|:::|...|",
55 " +---+---+---+---+---+---+---+---+",
56 " |...|:::|...|:::|...|:::|...|:::|",
57 " +---+---+---+---+---+---+---+---+"
58 }; */
59 char board[18][35];
60 memset(board,0,sizeof(board));
61 int i,j;
62 int num1=0,num2=0;
63 int numK=0,numQ=0,numR=0,numB=0,numP=0,numN=0;
64 int numk=0,numq=0,numr=0,numb=0,nump=0,numn=0;
65 for(i=17; i>0; i--)
66 {
67 for(j=1; j<=33; j++)
68 {
69 scanf("%c",&board[i][j]);
70 if (board[i][j]==‘K‘)
71 numK++;
72 if (board[i][j]==‘Q‘)
73 numQ++;
74 if (board[i][j]==‘R‘)
75 numR++;
76 if (board[i][j]==‘P‘)
77 numP++;
78 if (board[i][j]==‘N‘)
79 numN++;
80 if (board[i][j]==‘k‘)
81 numk++;
82 if (board[i][j]==‘q‘)
83 numq++;
84 if (board[i][j]==‘r‘)
85 numr++;
86 if (board[i][j]==‘p‘)
87 nump++;
88 if (board[i][j]==‘n‘)
89 numn++;
90 if (board[i][j]==‘B‘)
91 numB++;
92 if (board[i][j]==‘b‘)
93 numb++;
94 if (board[i][j]>=‘A‘&&board[i][j]<=‘Z‘)
95 num1++;
96 if (board[i][j]>=‘a‘&&board[i][j]<=‘z‘)
97 num2++;
98 }
99 getchar();
100 }
101 int k;
102 int ce;
103 char x,y;
104 int K=0,Q=0,R=0,B=0,N=0,P=0;
105 printf("White: ");
106 for(i=1; i<=num1; i++)
107 for(j=1; j<=17; j++)
108 {
109 ce=1;
110 for(k=1; k<=33; k++)
111 {
112 if (board[j][k]==‘K‘)
113 {
114 x=j/2+‘0‘;
115 y=(k-3)/4+‘a‘;
116 K++;
117 ce=0;
118
119 printf("%c%c%c,",board[j][k],y,x);
120 board[j][k]=‘.‘;
121 break;
122 }
123 if (board[j][k]==‘Q‘&&K==numK)
124 {
125 x=j/2+‘0‘;
126 y=(k-3)/4+‘a‘;
127 Q++;
128 ce=0;
129 printf("%c%c%c,",board[j][k],y,x);
130 board[j][k]=‘.‘;
131 break;
132 }
133 if (board[j][k]==‘R‘&&Q==numQ)
134 {
135 x=j/2+‘0‘;
136 y=(k-3)/4+‘a‘;
137 R++;
138 ce=0;
139
140 printf("%c%c%c,",board[j][k],y,x);
141 board[j][k]=‘.‘;
142 break;
143 }
144 if (board[j][k]==‘B‘&&R==numR)
145 {
146 x=j/2+‘0‘;
147 y=(k-3)/4+‘a‘;
148 B++;
149 ce=0;
150
151 printf("%c%c%c,",board[j][k],y,x);
152 board[j][k]=‘.‘;
153 break;
154 }
155 if (board[j][k]==‘N‘&&B==numB)
156 {
157 x=j/2+‘0‘;
158 y=(k-3)/4+‘a‘;
159 N++;
160 ce=0;
161
162 printf("%c%c%c,",board[j][k],y,x);
163 board[j][k]=‘.‘;
164 break;
165 }
166 if (board[j][k]==‘P‘&&N==numN)
167 {
168 x=j/2+‘0‘;
169 y=(k-3)/4+‘a‘;
170 ce=0;
171 P++;
172 if (P<numP)
173 printf("%c%c,",y,x);
174 else
175 printf("%c%c\n",y,x);
176 board[j][k]=‘.‘;
177 break;
178 }
179 }
180 if (!ce)
181 break;
182 }
183 int k1=0,q=0,r=0,b=0,n=0,p=0;
184 printf("Black: ");
185 for(i=1; i<=num2; i++)
186 for(j=17; j>=1; j--)
187 {
188 ce=1;
189 for(k=1; k<=33; k++)
190 {
191 if (board[j][k]==‘k‘)
192 {
193 x=j/2+‘0‘;
194 y=(k-3)/4+‘a‘;
195 k1++;
196 ce=0;
197
198 printf("%c%c%c,",board[j][k]-32,y,x);
199 board[j][k]=‘.‘;
200 break;
201 }
202 if (board[j][k]==‘q‘&&k1==numk)
203 {
204 x=j/2+‘0‘;
205 y=(k-3)/4+‘a‘;
206 q++;
207 ce=0;
208
209 printf("%c%c%c,",board[j][k]-32,y,x);
210 board[j][k]=‘.‘;
211 break;
212 }
213 if (board[j][k]==‘r‘&&q==numq)
214 {
215 x=j/2+‘0‘;
216 y=(k-3)/4+‘a‘;
217 r++;
218 ce=0;
219
220 printf("%c%c%c,",board[j][k]-32,y,x);
221 board[j][k]=‘.‘;
222 break;
223 }
224 if (board[j][k]==‘b‘&&r==numr)
225 {
226 x=j/2+‘0‘;
227 y=(k-3)/4+‘a‘;
228 b++;
229 ce=0;
230
231 printf("%c%c%c,",board[j][k]-32,y,x);
232 board[j][k]=‘.‘;
233 break;
234 }
235 if (board[j][k]==‘n‘&&b==numb)
236 {
237 x=j/2+‘0‘;
238 y=(k-3)/4+‘a‘;
239 n++;
240 ce=0;
241
242 printf("%c%c%c,",board[j][k]-32,y,x);
243 board[j][k]=‘.‘;
244 break;
245 }
246 if (board[j][k]==‘p‘&&n==numn)
247 {
248 x=j/2+‘0‘;
249 y=(k-3)/4+‘a‘;
250 ce=0;
251 p++;
252 if (p<nump)
253 printf("%c%c,",y,x);
254 else
255 printf("%c%c\n",y,x);
256 board[j][k]=‘.‘;
257 break;
258 }
259 }
260 if (!ce)
261 break;
262 }
263 return 0;
264 }
265 /*
266 "+---+---+---+---+---+---+---+---+",
267 "|:::|...|:::|...|:::|...|:::|...|",
268 "+---+---+---+---+---+---+---+---+",
269 "|...|:::|...|:::|...|:::|...|:::|",
270 "+---+---+---+---+---+---+---+---+",
271 "|:::|...|:::|...|:::|...|:::|...|",
272 "+---+---+---+---+---+---+---+---+",
273 "|...|:::|...|:::|...|:::|...|:::|",
274 "+---+---+---+---+---+---+---+---+",
275 "|:::|...|:::|...|:::|...|:::|...|",
276 "+---+---+---+---+---+---+---+---+",
277 "|...|:::|...|:::|...|:::|...|:::|",
278 "+---+---+---+---+---+---+---+---+",
279 "|:::|...|:::|...|:::|...|:::|...|",
280 "+---+---+---+---+---+---+---+---+",
281 "|...|:::|...|:::|...|:::|...|:::|",
282 "+---+---+---+---+---+---+---+---+",
283 */

时间: 2024-10-13 21:13:09

poj2996(Help Me with the Game)的相关文章

Python——深入理解urllib、urllib2及requests(requests不建议使用?)

深入理解urllib.urllib2及requests            python Python 是一种面向对象.解释型计算机程序设计语言,由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991年,Python 源代码同样遵循 GPL(GNU General Public License)协议[1] .Python语法简洁而清晰,具有丰富和强大的类库. urllib and urllib2 区别 urllib和urllib2模块都做与请求URL相关的操作,但

让win7变成无线路由(需要用管理员权限打开)最后完善.rar

让win7变成无线路由(需要用管理员权限打开)最后完善.bat @ECHO OFF CLS color 0a netsh wlan show drivers ECHO.★★★★★★★★★★★★★★★★★★★★★★★★★★★★ ECHO.★以上是你的无线网卡信息,查看你的网卡是否支持承载网络★ ECHO.★ ★ ECHO.★ 持请更新一个通过微软认证的驱动! ★ ECHO.★★★★★★★★★★★★★★★★★★★★★★★★★★★★ ECHO. ECHO. GOTO MENU :MENU ECHO.

Linux C中内联汇编的语法格式及使用方法(Inline Assembly in Linux C)

在阅读Linux内核源码或对代码做性能优化时,经常会有在C语言中嵌入一段汇编代码的需求,这种嵌入汇编在CS术语上叫做inline assembly.本文的笔记试图说明Inline Assembly的基本语法规则和用法(建议英文阅读能力较强的同学直接阅读本文参考资料中推荐的技术文章 ^_^). 注意:由于gcc采用AT&T风格的汇编语法(与Intel Syntax相对应,二者的区别参见这里),因此,本文涉及到的汇编代码均以AT&T Syntax为准. 1. 基本语法规则 内联汇编(或称嵌入汇

poj 1088 滑雪 DP(dfs的记忆化搜索)

题目地址:http://poj.org/problem?id=1088 题目大意:给你一个m*n的矩阵 如果其中一个点高于另一个点 那么就可以从高点向下滑 直到没有可以下滑的时候 就得到一条下滑路径 求最大的下滑路径 分析:因为只能从高峰滑到低峰,无后效性,所以每个点都可以找到自己的最长下滑距离(只与自己高度有关).记忆每个点的最长下滑距离,当有另一个点的下滑路径遇到这个点的时候,直接加上这个点的最长下滑距离. dp递推式是,dp[x][y] = max(dp[x][y],dp[x+1][y]+

常用工具类(System,Runtime,Date,Calendar,Math)

一.Sy 一个java.lang包中的静态工具类. 三大字段: static PrintStream err "标准"错误输出流. static InputStream in "标准"输入流. static PrintStream out "标准"输出流. 其他常用方法: 描述系统信息: 获取系统属性信息: static Properties getProperties(): (Properties是Hashtable的子类,也就是Map 的子类

TensorFlow【机器学习】:如何正确的掌握Google深度学习框架TensorFlow(第二代分布式机器学习系统)?

本文标签:   机器学习 TensorFlow Google深度学习框架 分布式机器学习 唐源 VGG REST   服务器 自 2015 年底开源到如今更快.更灵活.更方便的 1.0 版本正式发布,由 Google 推出的第二代分布式机器学习系统 TensorFlow一直在为我们带来惊喜,一方面是技术层面持续的迭代演进,从分布式版本.服务框架 TensorFlow Serving.上层封装 TF.Learn 到 Windows 支持.JIT 编译器 XLA.动态计算图框架 Fold 等,以及

Linux学习(linux就该这么学)4

超级管理员root root只是一个名称,真正的超级用户是UID值.每个用户都有一个唯一的UID值.root的UID值为0 UID1-999是运行系统服务的不同用户,默认不能登录系统.UID1000后是各个普通用户 用户名和UID储存文件在/etc/passwd中,密码在/etc/shadow中 GID是组,每个用户都有个基本组,后加的组为扩展组.GID在/etc/group 文件的权限和归属 特殊权限 SBIT   只可管理自己的数据,不能删除他人数据(只在目录里有效)  目录权限后面带t,如

Redis集群的高可用测试(含Jedis客户端的使用)

Redis集群的使用测试(Jedis客户端的使用) 1.  Jedis客户端建议升级到最新版(当前为2.7.3),这样对3.0.x集群有比较好的支持. https://github.com/xetorthio/jedis http://mvnrepository.com/artifact/redis.clients/jedis 2.  直接在Java代码中链接Redis集群: // 数据库链接池配置 JedisPoolConfig config = new JedisPoolConfig();

10.2: 现代软件工程这门课已经上了好几年了,以前有很多学生做过团队项目(说不定包括本校的学生),请你们找一个以前的团队采访一下-------------答题者:徐潇瑞

10.2: 现代软件工程这门课已经上了好几年了,以前有很多学生做过团队项目(说不定包括本校的学生),请你们找一个以前的团队采访一下 - 当时的项目有多少用户,给用户多少价值? 现在还有人用吗? - 这个项目能否给我们团队继续开发,源代码/文档还有么? - 项目开发有什么经验和教训 - 对学好软件工程有什么建议 写成一个博客   #团队博客作业2 根据老师的作业要求,我们采访了以前本科认识的一个同学,他在读本科的时候出去实习,参与了一些项目.他参与了手机外卖app的开发,根据他的回答,当时用户有1