C语言
文章平均质量分 66
寻隐者不遇2016
这个作者很懒,什么都没留下…
展开
-
【C语言】求最大公约数/最小公倍数
public class TwoNum { public static void main(String[] args) { System.out.println(MaxDivisor(14, 7)); System.out.println(MinMultiple(2, 7)); } private static int MaxDivisor(int a, int b){原创 2013-11-12 14:31:18 · 1130 阅读 · 0 评论 -
又见01背包
时间限制:1000 ms | 内存限制:65535 KB | 难度:3描述 有n个重量和价值分别为wi 和 vi 的 物品,从这些物品中选择总重量不超过 W 的物品,求所有挑选方案中物品价值总和的最大值。 1 1 1 1 输入 多组测试数据。 每组测试数据第一行输入,n 和 W ,接下来有n行,每行输入两个数,代表第i个物品的w原创 2015-06-06 16:04:30 · 423 阅读 · 0 评论 -
【C语言/算法之 01 背包】完全背包
[题目]有 N 种物品和一个容量为 V 的背包,每种物品都有无限件可用。第i种物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。[基本思路]这个问题非常类似于01背包问题,所不同的是每种物品有无限件。也就是从每种物品的角度考虑,与它相关的策略已并非取或不取两种,而是有取0件、取1件、取2件⋯⋯等很多种。如果仍然按照解0原创 2015-06-04 19:57:49 · 937 阅读 · 0 评论 -
【C语言/算法之 01 背包】基础版
[01背包问题]:设有一个背包可以放入的物品重量为V,现有n件物品,重量分别是 c1,c2,c3,…cn,价值分别为 w1,w2,w3,…wn。问能否从这n件物品中选择若干件放入背包中,使得放入的物品的价值和最大? [基本思路]:01 背包问题 0 表示不放入,1 表示放入。用子问题定义状态:即 f[i][v] 表示前i件物品恰放入一个容量为 v 的背包可以获取得到的最大价原创 2015-06-04 15:57:52 · 970 阅读 · 0 评论 -
【C语言】 qsort 的使用
#include #include int cmp(const void*, const void*);int main(){ int i = 0; int num[15] = {0,}; printf("\n原始数据:\n"); for (i = 0; i < 15; i++) { num[i] = rand()%100+1; printf原创 2014-04-16 11:55:57 · 656 阅读 · 0 评论 -
【C语言】最长子序列问题求解
二维最长递增子序列问题求解思路 以每个点为起点的最长递增子序列 3246211815247674 MAZE[SIZE][SIZE] – 对应原创 2015-05-28 16:51:59 · 1665 阅读 · 0 评论 -
【算法】 递归求解整数划分
描述 将正整数n表示成一系列正整数之和:n=n1+n2+…+nk, 其中n1≥n2≥…≥nk≥1,k≥1。 正整数n的这种表示称为正整数n的划分。求正整数n的不 同划分个数。 例如正整数6有如下11种不同的划分: 6; 5+1; 4+2,4+1+1; 3+3,3+2+1,3+1+1+1; 2+2+2,2+2+1+1,2+1+1+1+1; 1+1+1+1+1+原创 2014-04-20 17:13:43 · 1374 阅读 · 1 评论 -
【C 语言】DFS 解决马最少跳步次数
一道简单的C 语言题目, 给定特定长宽的矩形,给定起点终点,问最少几次可以从起点跳到终点。要求 必须按照象棋中马的跳走方式,如果不能跳到,则输出 -1 分析: 两种方法:1. BFS,将一次跳跃到达的位置,存入队列中,再通过出队检查是否是终点。如果不是终点,继续将出队点八个方向的点入队,直到找到终点位置。2. DFS,DFS的思路比较简单,但较好费资源。遍历出所有可以到原创 2015-04-22 19:34:00 · 1185 阅读 · 0 评论 -
【C语言】一道给力的题目
n-1位数时间限制:3000 ms | 内存限制:65535 KB难度:1描述已知w是一个大于10但不大于1000000的无符号整数,若w是n(n≥2)位的整数,则求出w的后n-1位的数。输入第一行为M,表示测试数据组数。接下来M行,每行包含一个测试数据。输出输出M行,每行为对应行的n-1位数(忽略前缀0)。如果除了最高位外,其余位都原创 2014-05-30 12:19:26 · 1187 阅读 · 0 评论 -
【C语言】大数相乘
今天抽空看了一下,用C语言实现的da原创 2014-10-10 10:32:40 · 863 阅读 · 0 评论 -
【C语言】scanf() 与 gets()
scanf() 读取字符串 当遇到空格时,它会原创 2014-05-26 10:39:34 · 650 阅读 · 0 评论 -
【C语言】 会场安排问题
描述学校的小礼堂每天都会有许多活动,有时间这些活动的计划时间会发生冲突,需要选择出一些活动进行举办。小刘的工作就是安排学校小礼堂的活动,每个时间最多安排一个活动。现在小刘有一些活动计划的时间表,他想尽可能的安排更多的活动,请问他该如何安排。输入第一行是一个整型数m(m每组测试数据的第一行是一个整数n(1随后的n行,每行有两个正整数Bi,Ei(0输出对于每一组原创 2014-04-18 10:40:03 · 2222 阅读 · 0 评论 -
【C语言】街区最短路径问题解题思路
描述 一个街区有很多住户,街区的街道只能为东西、南北两种方向。住户只可以沿着街道行走。各个街道之间的间隔相等。用(x,y)来表示住户坐在的街区。例如(4,20),表示用户在东西方向第4个街道,南北方向第20个街道。现在要建一个邮局,使得各个住户到邮局的距离之和最少。求现在这个邮局应该建在那个地方使得所有住户距离之和最小;输入 第一行一原创 2014-04-17 11:44:33 · 3807 阅读 · 0 评论 -
【C语言】转换一维数组
#include #define MAX_SIZE 20 /* 最大数组个数 */void TransposeArray(int *arr,int size);int main(){ int size = 0; int orien_arr[MAX_SIZE] = {0,}; printf("Input N: \n"); scanf("%d",&size); printf原创 2014-03-07 15:25:17 · 859 阅读 · 0 评论 -
【C语言】C语言动态分配内存
C语言动态分配内存 一维数组#include #include #include int main(){ int i = 0; int N = 0; int *arr = NULL; scanf("%d",&N); arr = (int *)malloc(N*sizeof(int)); memset(arr,0,N*sizeof(int)); for (i =原创 2015-06-12 11:39:56 · 2279 阅读 · 0 评论