![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
CODEVS
寸草心
1+1=10
展开
-
CODE[VS] 1003 电话连线
问题:http://codevs.cn/problem/1003//** 1003 电话连线 */#include <stdio.h>#define MAXN 100#define MAXC 10001#define DEBUG 1struct _line{ int x; // 城市 x int y; // 城市 y }line[MAXN];原创 2017-08-18 18:21:01 · 474 阅读 · 0 评论 -
CODE[VS]1024 一塔湖图
题目:http://codevs.cn/problem/1024/ 思路:根据数据建立燕园路口连接矩阵,然后用floyd算法求解最有路径。题目,数据5有误,t与k数据颠倒即可得到答案92。 题解:/* 1024 一塔湖图 */#include <stdio.h>#define DEBUG#define MAXN 11 /* 最大面积 */#define MAXT 10原创 2017-09-14 22:06:39 · 285 阅读 · 0 评论 -
CODE[VS]1025 选菜
题目: http://codevs.cn/problem/1025/ 思路:将价格和钱数浮点型值乘以10后,转换为整型。然后根据数据,将必须菜和美味值为0的菜从所有菜式中剔除。建立一个可选菜式队列,然后使用动态规划算法求解。 题解:/* 1025 选菜 */ #include <stdio.h>#define MAXN 101 /* 最大菜式数 */ #define MAXM原创 2017-09-15 18:08:44 · 414 阅读 · 0 评论 -
CODE[VS]1026 逃跑的拉尔夫
题目:http://codevs.cn/problem/1026/ 思路:深度搜索可能的终点,记录每个访问点,防止被二次搜索。 题解:/* 1026 逃跑的拉尔夫 */#include <stdio.h>#define MAXRC 51#define MAXL 1001 int r, c; /* 小镇地图行,列数 */char map[MAXRC原创 2017-09-25 11:12:41 · 325 阅读 · 0 评论 -
CODE[VS]1018 单词接龙
题目:http://codevs.cn/problem/1018/ 思路:合并字符串a,b。从字符串a的末尾字符a[ai]与字符串b的首字符b[bi]进行匹配,如果不相等,则ai - 1;如果相等,则匹配ai+x,与bi+x的字符是否相等,如果到达字符串a的结尾且ai不等于0,即b不包含a,则表示合并成功,记录合并位置,否则ai - 1。 题解:/* 1018 单词接龙 */ #include原创 2017-09-08 15:24:33 · 332 阅读 · 0 评论 -
CODE[VS]1019 集合论与图论
题目:http://codevs.cn/problem/1019/ 思路:建立每个顶点的边集,检测传递性。 题解:/* 1019 集合论与图论 */ #include <stdio.h>#define DEBUG#define MAXN 1001int t; /* 数据个数 */int n, m; /* 点,边数 */int E[MAXN][MAXN]; /* 边集原创 2017-09-08 16:31:49 · 781 阅读 · 0 评论 -
CODE[VS]1010 过河卒
题目:http://codevs.cn/problem/1010/ 思路:a(x,y)到b(n,m)的路径为ad(x+1, y)到b的路径与ar(x, y+1)到b的路径之和。 题解:/* 1010 过河卒 */ #include <stdio.h>#define MAXD 21 /* 最大棋盘 */ int chessboard[MAXD][MAXD];原创 2017-09-01 16:01:15 · 214 阅读 · 0 评论 -
CODE[VS] 1011 数的计算
题目:http://codevs.cn/problem/1011/ 思路:递归计算1至x/2的值 题解:/* 1011 数的计算 */ #include <stdio.h>int count; /* 个数计数 */ /* 添加数值原自然数左部 */ void add_num(int x){ int i; for(i = 1; i <= x / 2; i++){原创 2017-09-01 16:21:15 · 285 阅读 · 0 评论 -
CODE[VS]1012 最大公约数和最小公倍数问题
题目:http://codevs.cn/problem/1012/ 思路:p*q = x0 * y0,p的值为x0的倍数,最大为y0,遍历所有p,q值,计算满足条件的个数。 题解:/* 1012 最大公约数和最小公倍数问题 */#include <stdio.h>/* 求取最大公约数 */ int gcd(int m, int n){ return (m % n == 0) ? n原创 2017-09-01 17:06:28 · 614 阅读 · 0 评论 -
CODE[VS]1020 孪生蜘蛛
题目:http://codevs.cn/problem/1020/ 思路:首先计算各通道间的最短时间,使用(a, b) 和(b, c)的时间,来更新(a, c)间的时间。然后枚举所有的x1, x2组合,来计算任意点C到X1,X2的最短时间,并记录最长的最短时间,即为最坏的情况。在所有组合最坏情况中,找寻时间最短的组合。 题解:/* 1020 孪生蜘蛛 */#include <stdio.h>#原创 2017-09-11 15:08:37 · 315 阅读 · 0 评论 -
CODE[VS]1031 质数环
题目:http://codevs.cn/problem/1031/ 思路: 为了简化深度搜索的次数,首先计算17+16=33以内的所有质数,然后计算整数x后续的所有可能数next,使用深度搜索来计算质数环。 题解:/* 1031 质数环 */#include <stdio.h>#define MAXN 18int n; /* 质数环大小 */int next原创 2017-10-27 12:45:15 · 467 阅读 · 0 评论 -
CODE[VS]1027 姓名与ID
题目:http://codevs.cn/problem/1027/ 思路:先使用匈牙利算法求解一个最长匹配解。在修改第一次求解的匹配关系,检测是否还存在其他解,如果有则无法确定对应关系,如果没有则表示匹配唯一。输入过程中如果发现一一对应关系,则通过递归来修整名字与ID的对应表。 题解:/* 1027 姓名与ID */#include <stdio.h>#include <string.h>#原创 2017-10-20 10:15:18 · 1431 阅读 · 0 评论 -
CODE[VS]1028 花店橱窗布置
题目:http://codevs.cn/problem/1028/ 思路:KM算法求解 题解:/* 1028 花店橱窗布置 */#include <stdio.h>#define MAXN 101#define max(X,Y) ((X>Y)?X:Y)#define min(X,Y) ((X<Y)?X:Y)#define INF 2147483647int F, V;原创 2017-10-23 16:24:33 · 382 阅读 · 0 评论 -
CODE[VS]1029 遍历问题
题目:http://codevs.cn/problem/1029/ 思路:如果前序位置i处与后序L-i处的字符相等,则该点可能为左根也有可能为右根,而不同则表示此处为左,右分界处。分治求解。 题解:/* 1029 遍历问题 */#include <stdio.h>#define MAXN 28char preorder[MAXN], postorder[MAXN]; /* 前序,后原创 2017-10-23 21:34:07 · 393 阅读 · 0 评论 -
CODE[VS]1009 产生数
题目:http://codevs.cn/problem/1009/ 思路:计算每个数字的可能值,然后按位将所有可能相乘,得到可能所有可能数。 题解:/* 1009 产生数 */#include <stdio.h>#include <stdlib.h>#define DEBUG#define MAX 10#define MAXN 32 /* 整数最长长度 */ #原创 2017-08-29 15:43:43 · 460 阅读 · 0 评论 -
CODE[VS]1023 GPA计算
题目:http://codevs.cn/problem/1023/ 题解:/* 1023 GPA计算 */#include <stdio.h>#define DEBUG/* 主函数入口 */ int main(int argc, char *argv[]) { int n; /* 课目数 */ float score, credit,原创 2017-09-14 15:16:16 · 390 阅读 · 0 评论 -
CODE[VS]1017 乘积最大
题目:http://codevs.cn/problem/1017/ 思路:将N个字符分割为K个数并相乘,可划分为M个字符组成的数,乘以将N-M的字符分割为K-1个数。 题解:/* 1017 乘积最大 */#include <stdio.h>#define DEBUG#define toint(X) (X-'0') /* 将字符转换为整型 */ #define MAXN 41原创 2017-09-06 20:03:54 · 289 阅读 · 0 评论 -
CODE[VS]1004 四子连棋
题目:http://codevs.cn/problem/1004/ 题解:#include <stdio.h>#include <stdlib.h>#define DEBUG 1#define UP 0#define DOWN 1#define LEFT 2#define RIGHT 3#define BLACK 'B'#define WHITE 'W'#define NC原创 2017-08-21 18:02:19 · 391 阅读 · 0 评论 -
CODE[VS]1013 求先序排列
题目:http://codevs.cn/problem/1013/ 思路:前序遍历:根->左->右,中序遍历:左->根->右,后序遍历:左->右->根。所以后序遍历最后的节点为根,由根节点可将中序遍历划分为两部分:左部和右部。根据左右分割位置,可得出左子树根节点和右子树根节点。 题解:/* 1013 求先序排列 */#include <stdio.h>#define DEBUG#define原创 2017-09-04 15:43:41 · 422 阅读 · 0 评论 -
CODE[VS]1014 装箱问题
题目:http://codevs.cn/problem/1014/ 思路:依次将与容量最贴近的货物装入 题解:/* 1014 装箱问题 */#include <stdio.h>#define DEBUG#define MAXN 30int v, n; /* 容量,货物数 */ int goods[MAXN]; /* 货物体积 */ int all, remain;原创 2017-09-04 17:12:09 · 319 阅读 · 0 评论 -
CODE[VS]1008 选数
题目:http://codevs.cn/problem/1008/ 思路:组合 + 求和 + 素数 题解:/* 1008 选数 */ #include <stdio.h>#include <math.h>#define DEBUG#define MAXN 20int n, k; /* 样本大小,取样数 */ int data[MAXN], selected[MAXN];原创 2017-08-25 17:08:00 · 298 阅读 · 0 评论 -
CODE[VS]1015 计算器的改良
题目:http://codevs.cn/problem/1015/ 思路:将方程式简化为一个系数,一个常数,然后计算未知数值 题解:/* 1015 计算器的改良 */#include <stdio.h>#define DEBUG#define toInt(X) (X-'0')#define MAXL 200char equation[MAXL]; /* 方程式 */ double co原创 2017-09-05 16:53:36 · 425 阅读 · 0 评论 -
CODE[VS]1005 生日礼物
题目:http://codevs.cn/problem/1005/ 题解:#include <stdio.h>#define DEBUG #define MAXN 10#define MAXM 10#define MAXB 1001int n, m; /* 本子种类,颜色种类 */ int a[MAXN][MAXM]; /* 喜欢颜色数矩原创 2017-08-24 12:53:25 · 404 阅读 · 0 评论 -
CODE[VS]1016 税收与补贴问题
题目:http://codevs.cn/problem/1016/ 思路:问题可解释为,政府通过税收或补贴方式,来使预期价格下,商家获取的利润最大。第一根据线性变化,补齐已知的价格-销量表,根据销量减少值,获取最大的可能价格。根据成本价到最大价的销量表,计算每个价格的总利润。然后通过税收或补贴来更新利润,使预期价格时的利润最大。税收或补贴后的利润 = 原利润 (+ 补贴 * 销量) 或 (- 税收原创 2017-09-06 14:15:48 · 481 阅读 · 0 评论 -
CODE[VS]1021 玛丽卡
题目:http://codevs.cn/problem/1021/ 思路:使用floyd算法求解最优时间,并记录在不堵车情况(理想状态)下最优路径。枚举所有路径上的道路,计算在该路径无法通过时的最优时间,记录最长的最优时间。道路为双向车道,所以一条道路数据代表两条不同的道路。如果到达城市b的道路有m条,则b出现在floyd处理队列的次数可能为m。题解:/* 1021 玛丽卡 */#include原创 2017-09-14 09:53:14 · 2099 阅读 · 0 评论 -
CODE[VS] 1006 等差数列
题目:http://codevs.cn/problem/1006/ 题解:/* 1006 等差数列 */#include <stdio.h>#define DEBUG#define MAXSIZE 100int n; /* 数据大小 */ int array[MAXSIZE]; /* 所有数值 */int maxcount; /*原创 2017-08-24 15:07:02 · 1217 阅读 · 0 评论 -
CODE[VS] 1001 舒适的路线
舒适的路线 题目描述 Description Z小镇是一个景色宜人的地方,吸引来自各地的观光客来此旅游观光。 Z小镇附近共有N(1 < N ≤ 500)个景点(编号为1,2,3,…,N),这些景点被M(0 < M ≤ 5000)条道路连接着,所有道路都是双向的,两个景点之间可能有多条道路。也许是为了保护该地的旅游资源,Z小镇有个奇怪的规定,就是对于一条给定的公路Ri,任何在该公路上行驶的车辆速原创 2017-08-17 11:40:50 · 557 阅读 · 0 评论 -
CODE[VS]1002搭桥
题目:http://codevs.cn/problem/1002/#include <stdio.h>#define MAXR 50 //最大列数#define MAXC 50 //最大行数#define DEBUG 1struct _Bridge { int lu; //左/上建筑 int rd; //右/下建筑 int原创 2017-08-18 13:05:06 · 311 阅读 · 0 评论 -
CODE[VS] 1007 级数求和
题目:http://codevs.cn/problem/1007/ 题解:/* 1007 级数求和 */#include <stdio.h>int k; /* 求解整数 */ double n; /* 最大整数 */ /* 逐减法求解 */ int minus(double x){ if(x < 0){ return n - 1; } x原创 2017-08-24 15:44:28 · 451 阅读 · 0 评论 -
CODE[VS]1022 覆盖
题目:http://codevs.cn/problem/1022/ 思路:遍历所有格子,检测其是否能被覆盖(当前格子为陆地,右方或下方格子为陆地)。 题解:/* 1022 覆盖 */ #include <stdio.h>#define DEBUG#define MAXN 101 /* 最大方格数 */ #define POOL 2 /* 水塘标记 */ #d原创 2017-09-14 14:15:31 · 216 阅读 · 0 评论 -
CODE[VS] 1032最多因子数
题目:http://codevs.cn/problem/1032/ 思路:深度搜索+优化剪枝 题解:/* 1032 最多因子数 */#include <stdio.h>#define MAXN 31623long long L, U; /* 上下界 */long long P, D; /* 最多数和约数个数 */long long prime[MAXN]; /* 素数数组原创 2017-11-03 11:52:12 · 495 阅读 · 0 评论