算法入门
Charles___6
这个作者很懒,什么都没留下…
展开
-
【UVa101】木块问题
在学习STL,本文单纯抄代码已达到理解熟悉STL的目的 #include <cstdio> #include <string> #include <vector> #include <iostream> using namespace std; const int maxn = 30; int n; vector<int> pile[maxn]; //每个pile是一个vector,可理解为声明了一个int型二维数组,第一维长度固定,第二维长度原创 2020-08-23 23:49:06 · 169 阅读 · 0 评论 -
【UVa】220 黑白棋
#include <stdio.h> int Isok(char matrix[9][9], int x, int y, char player) {//判断player能否在点(x,y)落子 int x0 = x, y0 = y; while(y + 1 <= 8 && matrix[x][y+1] != '-' && matrix[x][y+1] != player) y++; if(y > y0 && y原创 2020-08-23 17:09:13 · 145 阅读 · 0 评论 -
【UVa201】正方形
原题对树边的定义和所给的样例不符,交换读到的竖边起始顶点的横纵坐标就行了 #include <stdio.h> typedef struct Table { int H; int V; }Cell; void Count(Cell Table[10][10], int *Size, int n, int size) {//传二维数组,注明列数 //对顶点集Table遍历 for(int i = 1; i <= n - size; i++) {原创 2020-08-20 23:46:27 · 149 阅读 · 0 评论 -
【UVa1589】象棋
分享一下我的思路吧 先判断初始局面是不是老将脸对脸,如果是的话,黑方获胜,输出NO 如果不是,黑方老将最多只有走下一步的方式,判断一下走完之后是否仍被将军,是就输出YES,否就输出N 判断黑方老将是否被将军时,车炮红将的判断方法十分嘞,都是横和竖,具体条件不太一样罢了,所以很好写,判断马时,就是八个位置,八种情况 #include <stdio.h> #include <string.h> int Kill(char XQ[11][10], int a, int b) {//判断走一原创 2020-08-20 17:19:39 · 141 阅读 · 0 评论 -
【UVa202】循环节
思路:竖式除法,如果在除的过程遇到出现相同的余数,则出现循环节 直接上代码 #include <stdio.h> int IsIn(int a, int rem[], int n) { for(int i=1; i<n; i++) { if(a == rem[i]) return i; } return 0; } int main() {//在除的过程中,只要遇到余数相同,一定就找到了循环节! int T; scanf("%原创 2020-08-18 15:56:39 · 176 阅读 · 0 评论 -
【UVa401】 回文词
输入一个字符串,判断它是否为回文串以及镜像串 空白表示该字符无镜像字符 代码如下,我觉得我使用的镜像字符数组表示方法还是比较简便的 #include <stdio.h> #include <string.h> char str[] = "A-AE-3H-HI-IJ-LL-JO-OS-2T-TU-UV-VW-WX-XZ-51-12-S3-E5-Z8-8"; //定义常量字符串,包括所有镜像字符及对应关系,以字符'-'作为连接标识 int main() { char s[20原创 2020-08-09 17:47:39 · 155 阅读 · 0 评论 -
回车 换行 字符串读取
①回车与换行 在Windows中: ‘\r’ 回车,回到当前行的行首,而不会换到下一行,如果接着输出的话,本行以前的内容会被逐一覆盖;’\n’ 换行,换到当前位置的下一行,而不会回到行首; Unix系统里,每行结尾只有“<换行>”,即"\n"; Windows系统里面,每行结尾是“<回车><换行>”,即“\r\n”; Mac系统里,每行结尾是“<回车>”,即"\r"; 一个直接后果是,Unix/Mac系统下的文件在Windows里打开的话,所有文字会变成一行;原创 2020-08-09 15:45:40 · 3545 阅读 · 0 评论 -
竖式问题
问题描述:找出所有形如abc*de(三位数乘两位数)的算式,使得在完整的竖式中,所有的数字都属于一个特定的数字集合。输入数字集合(相邻数字之间没有空格),输出所有竖式。每个竖式前应有编号,之后有一个空行。最后输出解得总数。具体格式详见样例输出(为了便于观察,竖式中的空格改用小数点表示,但是所写程序中应该输出空格,而非小数点) 样例输入:2357 样例输出: <1> ..775 X..33 ----- .2325 2325. ----- 25575 The number of solutions原创 2020-08-09 11:36:29 · 951 阅读 · 1 评论 -
算法竞赛 入门经典(第2版) 第二章习题答案 仅供参考
//习题2-1 #include <stdio.h> #include <math.h> int main() { int A, B, C; for(int i = 100; i <= 999; i++) { A = i / 100; B = i / 10 % 10; C = i % 10; if(i == pow(A, 3) + pow(B, 3) + pow(C, 3)) printf原创 2020-08-06 21:33:01 · 260 阅读 · 0 评论 -
算法竞赛 入门经典(第2版) 第一章习题答案 仅供参考
第一章课后习题总结 /*习题1-1 #include <stdio.h> #include <math.h> int main() { int a, b, c; scanf("%d%d%d", &a, &b, &c); printf("%.3f",(a + b + c) / 3.0); return 0; } */ /*习题1-2 #include <stdio.h> int main() { float原创 2020-08-05 13:30:26 · 257 阅读 · 0 评论