挑战程序设计竞赛
文章平均质量分 60
J先生的编程笔记
一杯茶,一包烟,一个 BUG 改一天!
展开
-
2.1.4.1部分和问题
问题描述: 给定整数a1,a2,...,an,判断是否可以从中选出若干数,使它们的和恰好为k。 限制条件: 1 -10^8 -10^8 样例1: 输入 n = 4 a = {1,2,4,7} k = 13 输出 Yes(13 = 2 + 4 7) 样例2: 输入 n = 4 a = {1,2,4,7} k = 15 输出 No 思想: 借用完原创 2018-01-15 17:19:53 · 203 阅读 · 0 评论 -
2.1.4.2 Lake Counting(POJ No.2386)
问题描述:有一个大小为N×M的园子,雨后积起了水。八连通的积水被认为是连通在一起的。请求出园子里总共有多少水洼?(八连通指的是下图中相对W的*部分)****W****限制条件:N,M输入输出样例见P32思想:从每一个水洼的开头进行深度递归遍历,并将之替换,记录深度遍历次数即为水洼数。代码:#include const int MAX_N = 100; int N, M; char field[M原创 2018-01-17 15:03:21 · 344 阅读 · 0 评论 -
2.1.5.1迷宫的最短路径
问题描述:给定一个大小为N×M的迷宫。迷宫由通道和墙壁组成,每一步可以向邻接的上下左右四格的通道移动。请求出从起点到终点所需的最小步数。请注意,本题假定从起点一定可以移动到终点。限制条件:N,M样例见教材P34#include #include const int INF = 100000000; const int MAX_N = 100; const int MAX_M = 100; //原创 2018-01-19 14:20:33 · 247 阅读 · 0 评论 -
2.2.1.1 硬币问题
问题描述: 有1元、5元、10元、50元、100元、500元的硬币各C1、C5、C10、C50、C100、C500枚。现在要用这些硬币来支付A元,最少需要多少枚硬币?假定本题至少存在一种支付方案。限制条件:0C1、C5、C10、C50、C100、C5000样例:输入:C1 = 3、C5 = 2、C10 = 1、C50 = 3、C100 = 0、C500 = 2,A = 620输出:6(500*1+原创 2018-01-19 15:04:37 · 179 阅读 · 0 评论 -
2.2.2.1 区间问题
//待调试 #include #include const int MAX_N = 100000; //输入 int N = 5, S[MAX_N] = {1,2,4,6,8}, T[MAX_N] = {3,5,7,9,10}; //用于对工作排序的pair数组 typedef pair P; P itv[MAX_N]; void solve(){ //对pair进行的是字典序比较原创 2018-01-19 14:47:56 · 141 阅读 · 0 评论 -
2.2.3.1 字典序最小问题
#include const int MAX_N = 20; //输入 int N = 6; char S[MAX_N+1] = {'A','C','D','B','C','B'}; void solve(){ //剩余的字符串为S[a],S[a+1],...,S[b] int a = 0, b = N - 1; while(a<=b){ //从左边原创 2018-01-19 15:24:37 · 235 阅读 · 0 评论