自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

转载 匈牙利算法,百度

匈牙利算法 中文名匈牙利算法外文名Hungary提出者Edmonds提出时间1965算法的核心寻找增广路径简介编辑设  是一个无向图。如顶点集V可分割为两个互不相交的子集  ,选择这样的子集中边数最大的子集称为图的最大匹配问题(maximal matching problem

2017-08-26 11:32:42 414

转载 zyc从小就比较喜欢玩一些小游戏,其中就包括画一笔画,他想请你帮他写一个程序,判断一个图是否能够用一笔画下来。 规定,所有的边都只能画一次,不能重复画。 输入 第一行只有一个正整数N(N<=

欧拉定理 如果一个网络是连通的并且奇顶点的个数等于0或2,那么它可以一笔画出;否则它不可以一笔画出。判断一笔画的方法:  ①是连通的。一个图,如果图上任意二点总有线段连接着,就称为连通的。不是连通的就不能一笔画出。  ②奇点个数是0或者是2。图上线段的端点可以分成二类,奇点和偶数。一个点,以它为端点的线段数是奇数就称为奇点,线段数是偶数就称为偶点。  一个图是否是一笔画就看奇点的个

2017-08-25 20:49:40 1760

转载 邮票分你一半小珂最近收集了些邮票,他想把其中的一些给他的好朋友小明。每张邮票上都有分值,他们想把这些邮票分成两份,并且使这两份邮票的分值和相差最小(就是小珂得到的邮票分值和与小明的差值最小),现在每张

背包问题变形。。。把这些数放在一个数总和的一半大的一个背包 中,使其尽量装的最多。则是两半差值最小#include#include#include#includeusing namespace std;int num[1005];int dp[100500];int main(){int c,n,i,add,j;scanf("%d",&c);whil

2017-08-24 10:36:45 672

原创 给你一个字符串,里面只包含"(",")","[","]"四种符号,请问你需要至少添加多少个括号才能使这些括号匹配起来。

01.#include02.#include03.#include04.using namespace std;05.int main()06.{07.int N,n;08.int dp[200][200]={0};09.cin>>N;10.while(N--)11.{12.char a[200]={0};

2017-08-22 20:41:06 7240

原创 描述 有一楼梯共m级,刚开始时你在第一级,若每次只能跨上一级或二级,要走上第m级,共有多少走法? 注:规定从一级到一级有0种走法。

01.#include02.int f[41];03.int main()04.{05.int n,m,i;06.f[1]=0;07.f[2]=1;08.f[3]=2;09.for(i=4;i10.f[i]=f[i-1]+f[i-2];11.scanf("%d",&n);12.while(n--)13.

2017-08-22 19:57:58 14649 1

原创 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 (Figure 1) Figure 1 shows a number triangle. Write a program that calc

01.#include02.#include03.#include04.using namespace std;05.int dp[110][110],num[110][110];06.int main()07.{08.int n;09.while(~scanf("%d",&n))10.{11.memset(dp,0,

2017-08-22 19:24:52 1643

原创 描述 求一个字符串的最长递增子序列的长度 如:dabdbf最长递增子序列就是abdf,长度为4 输入 第一行一个整数0<n<20,表示有n个字符串要处理 随后的n行,每行有一个字符串,该字符串的长度不

01.#include02.#include03.int main()04.{05.char a[10000];06.int count[10000];07.int i,j,k,m,len,ch;08.scanf("%d",&m);09.while(m--)10.{11.scanf("%s",a);12.len

2017-08-22 19:23:13 1175

转载 有n个矩形,每个矩形可以用a,b来描述,表示长和宽。矩形X(a,b)可以嵌套在矩形Y(c,d)中当且仅当a<c,b<d或者b<c,a<d(相当于旋转X90度)。例如(1,5)可以嵌套在(6,2)内,但

.#include02.#include03.#include04.using namespace std;05.struct stu06.{07.int a,b;08.}s[1020];09.int dp[1020];10.int cmp(stu x,stu y)11.{12.if(x.a13.r

2017-08-22 19:21:14 3007

转载 Vasya is the beginning mathematician. He decided to make an important contribution to the science an

题意:1~1000000000之间,各位数字之和等于给定s的数的个数每行给出一个数s(1 ≤ s ≤ 81),求出1~10^9内各位数之和与s相等的数的个数。1、只有s=1时,10^9的系数才能为1,否则就大于10^9;所以和为1的要单一列出来。2、如果s!=1:定义状态dp[i][j]为前i位各位数之和为j的情况数量:对于前i为的数字之和最大为:9*i,即每一位数字都是9.

2017-08-22 10:05:53 255

转载 石子合并(一) 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述 有N堆石子排成一排,每堆石子有一定的数量。现要将N堆石子并成为一堆。合并的过程只能每次将相邻的两堆

#include #include //状态转移方程:m(i, j) = min(m(i,k),m(k + 1,j)) + sum(i, j)(i #include //区间型动态规划 using namespace std;//合并石子的每个阶段必定是两堆石子的合并 int d[201], sum[200][200], m[200][200];//m[i][j] 表示从i到j的最

2017-08-20 20:52:34 664

转载 memset函数用法百度

memset是计算机中C/C++语言函数。将s所指向的某一块内存中的前n个 字节的内容全部设置为ch指定的ASCII值, 第一个值为指定的内存地址,块的大小由第三个参数指定,这个函数通常为新申请的内存做初始化工作, 其返回值为指向s的指针。void *memset(void *s, int ch, size_t n);函数解释:将s中当前位置后面的n个字节 (typedef

2017-08-20 17:30:23 396

转载 现在有很多物品(它们是可以分割的),我们知道它们每个物品的单位重量的价值v和重量w(1<=v,w<=10);如果给你一个背包它能容纳的重量为m(10<=m<=20),你所要做的就是把物品装到背包里,使

#includeint main(){int n,m,s,max; int sum,i,j,a,temp;int v[10],w[10];scanf("%d",&n);while(n--){a=0;sum=0;max=0;scanf("%d %d",&s,&m);for(i=0;iscanf("%d%d",&v[i],&w[i]);for(i=0

2017-08-02 09:31:57 2030

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除