算法入门
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 · 192 阅读 · 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 · 169 阅读 · 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 · 176 阅读 · 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 · 166 阅读 · 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 · 194 阅读 · 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 · 184 阅读 · 0 评论 -
回车 换行 字符串读取
①回车与换行在Windows中:‘\r’ 回车,回到当前行的行首,而不会换到下一行,如果接着输出的话,本行以前的内容会被逐一覆盖;’\n’ 换行,换到当前位置的下一行,而不会回到行首;Unix系统里,每行结尾只有“<换行>”,即"\n";Windows系统里面,每行结尾是“<回车><换行>”,即“\r\n”;Mac系统里,每行结尾是“<回车>”,即"\r";一个直接后果是,Unix/Mac系统下的文件在Windows里打开的话,所有文字会变成一行;原创 2020-08-09 15:45:40 · 3668 阅读 · 0 评论 -
竖式问题
问题描述:找出所有形如abc*de(三位数乘两位数)的算式,使得在完整的竖式中,所有的数字都属于一个特定的数字集合。输入数字集合(相邻数字之间没有空格),输出所有竖式。每个竖式前应有编号,之后有一个空行。最后输出解得总数。具体格式详见样例输出(为了便于观察,竖式中的空格改用小数点表示,但是所写程序中应该输出空格,而非小数点)样例输入:2357样例输出:<1>..775X..33-----.23252325.-----25575The number of solutions原创 2020-08-09 11:36:29 · 1080 阅读 · 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 · 292 阅读 · 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 · 279 阅读 · 0 评论