UVA1589 Xiangqi】的更多相关文章

Xiangqi is one of the most popular two-player board games in China. The game represents a battle between two armies with the goal of capturing the enemy's ``general" piece. In this problem, you are given a situation of later stage in the game. Beside…
书上具体所有题目:http://pan.baidu.com/s/1hssH0KO 代码:(Accepted,0 ms) //UVa1589 #include<iostream> #include<cmath> #define P(x,y) Pi[x].position[y] using namespace std; int N;//2<=N<=7 bool A[4];//around,储存"将"周围是不是已经不能走了 0上 1左 2下 3右 stru…
开始碰到这个题时觉得太麻烦了直接跳过没做,现在放假了再次看这个题发现没有想象中那么麻烦,主要是题目理解要透彻,基本思路就是用结构体数组存下红方棋子,让黑将军每次移动一下,看移动后是否有一个红方棋子可以吃掉它,这样做黑将军吃子这一情况就可以完美的跳过了,因为只看不在黑将军移动后位置的棋子是否能吃掉他.二维数组模拟棋盘,注意皇宫,玩过象棋的应该对规则比较熟悉,注意憋马脚的情况,不懂得可以看看中国象棋的规则.下面附上我的AC代码,主要是输入那块很烦,只是用getchar()读掉一个回车的话本地测试是对…
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 车是可以被吃掉的... 注意这个情况. 其他的模拟即可. [代码] #include <bits/stdc++.h> using namespace std; const int dx[4] = {0,0,1,-1}; const int dy[4] = {1,-1,0,0}; const int dx1[8] = {-1,-2,-2,-1,1,2,2,1}; const int dy1[8] = {-2,-1,1,2,-2,…
Xiangqi Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 3193    Accepted Submission(s): 780 Problem Description Xiangqi is one of the most popular two-player board games in China. The game repre…
Xiangqi Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=4121 Description Xiangqi is one of the most popular two-player board games in China. The game represents a battle between two armies with the goal of captu…
Xiangqi is one of the most popular two-player board games in China. The game represents a battle between two armies with the goal of capturing the enemy's "general" piece. In this problem, you are  given a situation of later stage in the game. B…
Description: Xiangqi is one of the most popular two-player board games in China. The game represents a battle between two armies with the goal of capturing the enemy’s “general” piece. In this problem, you are given a situation of later stage in the…
4746: Xiangqi 时间限制(普通/Java):1000MS/3000MS     内存限制:65536KByte 总提交: 15            测试通过:2 描述 Xiangqi is one of the most popular two-player board games in China. The game represents a battle between two armies with the goal of capturing the enemy’s “gen…
描述 Xiangqi is one of the most popular two-player board games in China. The game represents a battle between two armies with the goal of capturing the enemy’s “general” piece. In this problem, you are given a situation of later stage in the game. Besi…
采用 pygame 写的象棋程序,目前只完成绘制棋盘与走动棋子,还没考虑规则等问题. 1. 代码: """ x01.xiangqi (c) 2019 by x01""" import os, sys, pygame from pygame.locals import * BaseDir = os.path.dirname(os.path.abspath(__file__)) ImagePath = BaseDir + '/res/' BoardW…
Xiangqi Xiangqi is one of the most popular two-player board games in China. The game represents a battle between two armies with the goal of capturing the enemy's "general" piece. In this problem, you are given a situation of later stage in the…
题意: 给一个象棋局势,问黑棋是否死棋了,黑棋只有一个将,红棋可能有2~7个棋,分别可能是车,马,炮以及帅. 解法: 开始写法是对每个棋子,都处理处他能吃的地方,赋为-1,然后判断将能不能走到非-1的点.但是WA了好久,也找不出反例,但就是觉得不行,因为可能有将吃子的情况,可能有hack点.但是比赛后还是被我调出来了. 代码: #include <iostream> #include <cstdio> #include <cstring> #include <cs…
就是声明两个数组,一个模拟棋局,另一个模拟黑将不能走的位置.不过写得有点长了... #include<iostream> #include<string> using namespace std; struct Node { ]; int x, y; }a[]; ][]; //模拟棋盘棋子的情况 ][]; //模拟黑棋不能走的情况 int bh, bs; //黑色棋子的坐标 void G(int x, int y) //模拟帅棋子 { ; ; i < x; i++) { if…
题意:给定一些字母,每个字母都代表一值,如果字母中没有B,或者C,那么就在总值大于1的条件下删除1,然后比较大小. 析:没什么好说的,加起来比较就好了. 代码如下: #pragma comment(linker, "/STACK:1024000000,1024000000") #include <cstdio> #include <string> #include <cstdlib> #include <cmath> #include &…
传送门:http://acm.hdu.edu.cn/showproblem.php?pid=4121 题意:中国象棋对决,黑棋只有一个将,红棋有一个帅和不定个车 马 炮冰给定位置,这时当黑棋走,问你黑棋是不是被将死了(当前位置被将,能走得下一步也被将) 题解:代码里面注释很详细,我就不多说了,知道象棋规则的同学基本上都可以做出来 AC代码: #include <iostream> #include <cstdio> #include <cstring> #include…
模拟吧,算是... 被这个题wa到哭,真是什么都不想说了...上代码 #include <iostream> #include <cstring> using namespace std; struct node { int x,y; char c; }q[]; int main (){ int n,x,y; ; ][]; while (cin>>n>>x>>y){ ) break ; memset (map,,sizeof map); ;i&l…
●赘述题意 给出一个中国象棋残局,告诉各个棋子的位置,黑方只有1枚“将”,红方有至少2枚,至多7枚棋子,包含1枚“帅G”,和若干枚“车R”,“马H”,“炮C”.当前为黑方的回合,问黑方的“将”能否在移动一步后不被“将军”. ●题解 本题就是一个模拟:枚举“将”向四个方向走,是否满足题意. 但比较考察逻辑和代码能力. 但有一个坑点: “将”在移动时,不能移动到与“帅”照面. 但,恶心的数据会有输入的局面就出现将帅照面的情况,按理说,应是黑方赢了(因为轮到黑方的回合),也就是说在程序中加一个特判.但…
题意:背景就是象棋, 题解:坑点1(wa的第一天):将军可以吃掉相邻的棋子,(然行列也写反了orz) 坑点2(wa的第二天):将军到马要反过来写,边界有误,并且第一次碰到的车才算(写到后来都忘了) #define _CRT_SECURE_NO_WARNINGS #include<cmath> #include<iostream> #include<stdio.h> #include<algorithm> #include<cstring> usi…
题目 题目     分析 无力了,noip考完心力憔悴,想随便切道题却码了250line,而且还是错的,知道自己哪里错了,但特殊情况判起来太烦了,唯一选择是重构,我却没有这勇气. 有空再写吧,最近真的快疯了.     代码 对拍 #include <bits/stdc++.h> int main() { for(int i=1;i<=100;i++){ system("rand.exe > in.txt"); system("1589.exe <…
模拟题考验coding能力,一定要思路清晰,按照模块化思想,有哪些情况,需要哪些功能都要事先分析好了.高手的模拟题代码往往结构很清晰,功能模块写成函数,没有过多重复代码,让人一看便明. 方法选择的好坏会影响编程复杂度,这题老将最多只能往四个位置走,就枚举这四个位置,每个位置再枚举每个红子看是不是有子能吃了它.枚举时注意有可能老将这一步吃了一个红子. 有一种情况是一开始双方老将就见面,这其实不叫红棋在将军,实际中红棋不能这么将.但是毕竟是一道编程题,出题人可能也不是太懂棋...所以要考虑这种情况.…
题目: 象棋,黑棋只有将,红棋有帅车马炮.问是否死将. 思路: 对方将四个方向走一步,看看会不会被吃. 代码: 很难看……WA了很多发,还越界等等. #include <cstdio> #include <cstring> #include <cstdlib> ][]; ][] = {{,},{,},{-,},{,-}}; bool inBlackPalace(int x, int y) { <= y && y <= && &…
题目:(传送门) 给出一个象棋的残局,下一步是黑棋走,判断黑棋是不是被将死. 思路: 读完这个题,知道是一个模拟题,然后想到用两个二维数组来模拟棋盘,一个(mp数组)用来存残局,一个(res数组)用来处理红棋在棋盘上产生的对黑棋的限制. 将红棋的马.车.炮.将写成函数来分别处理.这样处理完之后,判断一下黑棋的四周是不是有可以走的格子,有的话不是将死,没有的是就是被将死了. 1.可以将车和将写成一个函数来处理,这里可以标记与棋子处于同一行和同一列中的格子,如下图: 红色圈出来的部分不能走,注意马上…
http://acm.hdu.edu.cn/showproblem.php?pid=4461 题意:每个棋子有一个权值,给出红方的棋子情况,黑方的棋子情况,问谁能赢. 思路:注意“ if a player has no Ma or no Pao, or has neither, his total offense power will be decreased by one”这句话即可. #include <cstdio> #include <cstring> #include &…
一:题目 在黑方只有一个“将”的情况下,红方只有(车.马.炮)(可以多个).帅的情况下,判断黑方是否被将死 (一)题目详解 其中棋盘按照坐标方式表示,左上角为(,),列数最大9,行数最大10 G 表示 将帅 R 表示 车 H 表示 马 C 表示 炮 (二)样例输入 //第一行第一个数字:表示红方有2个棋子 第二三个表示黑方“将”位置在(1,4) G //表示红方“帅”在(10,5) R //表示红方“车”在(6,4) 空行表示一次输入结束 5 //第一行第一个数字:表示红方有3个棋子 第二三个表…
首先说下为什么我们需要用到分支-合 并.比如项目demo下有两个小组,svn下有一个trunk版.由于客户需求突然变化,导致项目需要做较大改动,此时项目组决定由小组1继续完成原来正 进行到一半的工作[某个模块],小组2进行新需求的开发.那么此时,我们就可以为小组2建立一个分支,分支其实就是trunk版[主干线]的一个copy 版,不过分支也是具有版本控制功能的,而且是和主干线相互独立的,当然,到最后我们可以通过[合并]功能,将分支合并到trunk上来,从而最后合并为一 个项目. 下面是在ecli…
dir /b 就是ls -f的效果 1057 -- FILE MAPPING_web_archive.7z 2007 多校模拟 - Google Search_web_archive.7z 2083 -- Fractal_web_archive.7z 2663 -- Tri Tiling_web_archive.7z 3款重复文件查找清理软件(Windows_Mac_Linux) _ 穆童博客_web_archive.7z 404 - 找不到文件或目录._web_archive.7z acm h…
Ctrl + Alt + T 打开终端, $代表普通用户,#代表超级用户(root user)如:    xiangqi@xiangqi ~$           root@xiangqi ~# echo打印,后可接无引号.单引号.爽引号,方法基本类似,特殊的地方在于:(1)希望打印!时,双引号中需要加转义字符 \ ,如 echo " Hello \!" (在shell中貌似不存在这个问题)(2)用单引号时,比如echo '$var',这时没法对单引号中的变量求值,仅仅打印$var另一…
首先说下为什么我们需要用到分支-合并.比如项目demo下有两个小组,svn下有一个trunk版.由于客户需求突然变化,导致项目需要做较大改动,此时项目组决定由小组1继续完成原来正进行到一半的工作[某个模块],小组2进行新需求的开发.那么此时,我们就可以为小组2建立一个分支,分支其实就是trunk版[主干线]的一个copy 版,不过分支也是具有版本控制功能的,而且是和主干线相互独立的,当然,到最后我们可以通过[合并]功能,将分支合并到trunk上来,从而最后合并为一个项目. 下面是在eclipse…
相关博文目录: 第一次作业点评 第二次作业点评 第三次作业点评 说明:随机挑选20组点评,大家可以看看blog名字,github项目名字,看看那种是更好的,可以学习,每个小组都会反应出一些问题,希望能取长补短,改进自己的项目,所有贴出来的各种信息都可以自己做下横向对比,自(主动)学(别人好的地方)哈 第一组:取款机项目 组员 1121:负责功能代码编写 blog:取款机项目实验报告 code:joanyy/ATM 1125:负责单元测试编写 blog:结对项目:ATM code:tpp53185…