自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(56)
  • 资源 (2)
  • 收藏
  • 关注

原创 Problem4-1018

简单题意:编号 0 -> N-1,  然后有两种操作,M : 合并操作, 2 种邮件合并为一种;S  : 分离操作, 将一封邮件独立出去单独占一个集合,最后题目要求统计集合的个数.   解题思路:删作为其它某些点的桥梁,通向根节点的桥梁,也就是ancestor[x]不变!若再删除,再用其它点代替,那么曾经的替代品也成了桥梁代码如下:#include #include

2016-07-07 07:38:59 295

原创 Problem4-总结报告

图的相关算法 图论〔Graph Theory〕是数学的一个分支。它以图为研究对象。图论中的图是由若干给定的点及连接两点的线所构成的图形,这种图形通常用来描述某些事物之间的某种特定关系,用点代表事物,用连接两点的线表示相应两个事物间具有这种关系。图论,是ACM程序设计这门课的最后一个专题,我觉得也是最难的一个专题,上述所提及的算法,只是图论中算法的极小一部分,图论的综合性比较强,比如

2016-07-06 17:25:29 484

原创 Problem4-1009

简单题意:在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的t-shirt。但是每当我们的工作人员把上百件的衣服从商店运回到赛场的时候,却是非常累的!所以现在他们想要寻找最短的从商店到赛场的路线,你可以帮助他们吗?解题思路:思路:floyd代码如下:#include#includeconst int N=105, INF=9999999;int d[N], w[

2016-07-06 17:22:40 764

原创 Problem4-1013

简单题意:车票的价格决定于两个站点之间的距离。给出了描述距离和价钱之间关系的表格。求花费最少解题思路:用Floyd算法,借鉴了网上的算法,他们用的是_int64,直接用int不知道有没有问题;代码如下:#include  #include  #include  using namespace std;  const __int64 inf = 1e18

2016-07-06 17:18:11 236

原创 Problem4-1006

简单题意:给出村庄(编号用字母表示)与其他村庄之间道路的维护费用(村庄不一定和其他村庄有直接相连的道路),选择适当的道路进行维护,使得所有村庄都能通过被维护的道路连通而且维护费用最少。解题思路:又是求最少(小)的问题,还是换汤不换药,重用Problem D的代码,不就是把村庄序号改成字母了嘛,用ASCII码转换成数字,对于“村庄不一定和其他村庄有直接相连的道路”,没有直接道路相连的村庄,假

2016-07-05 22:24:52 288

原创 Problem4-1004

简单题意:给你一些镇子,和镇子之间的距离,现在要修一条路,把所有镇子连起来,求路的最短距离。解题思路:最小生成树问题,我采用的还是KRUSKAL是第一题的简化版,详情请看第一题。代码如下:#include  #include  #include  using namespace std;  const int N = 105;  int fathe

2016-07-03 22:08:26 254

原创 Problem4-1019

简单题意:给定一系列数对,例如a和b,表示a和b不是同一种性别,然后不断的给出这样的数对,问有没有性别不对的情况。解题思路:并查集合并之前判断是否冲突,不冲突就合并,用opp保存立的单位,set保存并查集中的元素。opp保存对立单位。#include#includeusing namespace std;int set[2005];int find(int x)

2016-07-03 22:05:25 184

原创 Problem4-1011

简单题意:虽然草儿是个路痴(就是在杭电待了一年多,居然还会在校园里迷路的人,汗~),但是草儿仍然很喜欢旅行,因为在旅途中 会遇见很多人(白马王子,^0^),很多事,还能丰富自己的阅历,还可以看美丽的风景……草儿想去很多地方,她想要去东京铁塔看夜景,去威尼斯看电影,去阳明山上看海芋,去纽约纯粹看雪景,去巴黎喝咖啡写信,去北京探望孟姜女……眼看寒假就快到了,这么一大段时间,可不能浪费啊,一定要给自己好

2016-07-02 20:51:16 251

原创 Problem4-1012

简单题意:n*m大小的矩形,起点在矩形的左上角, 终点在右下角,里面一个小矩形代表一个街区(block)。每个小矩形的边长都是2520, 小矩形的边有一个速度限制,范围是0~9, 如果是0表示这条边不能行驶。解题思路:绝对是一道水题。每一条边是  "数字"+“空格”+“符号”的形式, 数字表示这条边的限速, 符号表示这条路是单向(还分东西, 南北)的还是双向的。处理完复杂的输出和读取问题之

2016-06-30 22:20:14 257

原创 Problem4-1008

简单题意:给你一个不成环的图,让你在只能构成一个环的情况下,求出这个环的权值和的最大值解题思路:并查集问题,还是按照以前的套路,当边上的两个节点的根节点相同时,会构成环,这时候就要考虑是构成一个环还是构成两个环,如果构成一个环,那么保留,如果是两个环,就舍弃,把整个图遍历之后,输出最大值即可代码如下:#include  #include  #include  #incl

2016-06-28 10:40:31 288

原创 acm课程总结

ACM课程总结 ACM的课程学习之路自昨天起结束了,本该听他们删掉的选修课程,还是一意孤行地坚持了下来,接触ACM三个月零15天,在HDU做了五六十道题,其实做了多少题目并不是最重要的,重要的是学到了什么,首先简单的总结一下。学到的算法小结:掌握的非常熟悉的算法: 简单的动态规划:包括思考问题的方式和角度,能从简单的问题中提取出动态规划的状态转移方程,关于矩阵内部运算的DP问题比较熟悉,对

2016-06-28 10:30:50 1284

原创 Problem4-1005

简单题意:省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可)。现得到城镇道路统计表,表中列出了任意两城镇间修建道路的费用,以及该道路是否已经修通的状态。现请你编写程序,计算出全省畅通需要的最低成本。解题思路:此题在1004题的基础上做了些许改动,即有些城镇之间早已有了路,把这个描述转化成代码的话很简单,只要让这条边的权值

2016-06-27 21:28:21 299

原创 Problem4-1003

简单题意:某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇。省政府“畅通工程”的目标是使全省任何两个城镇间都可以实现交通(但不一定有直接的道路相连,只要互相间接通过道路可达即可)。问最少还需要建设多少条道路?解题思路:并查集问题,只要找出根节点的数目即可,很简单。代码如下:#includeint bin[1002];int fi

2016-06-27 21:23:52 387

原创 Problem4-1001

简单题意:给你一些城镇,以及各个镇之间的距离,现在要修建道路,把这些镇子穿起来,已知一些镇子之间已经有了道路,现在求施工的最短路径。解题思路:这是最小生成树问题,我采用的是kruskal算法。

2016-06-23 20:50:39 241

原创 Problem3-总结报告

综述一 :动态规划算法通常用于求解具有某种最优性质的问题。在这类问题中,可能会有许多可行解。每一个解都对应于一个值,我们希望找到具有最优值的解。动态规划算法与分治法类似,其基本思想也是将待求解问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到原问题的解。与分治法不同的是,适合于用动态规划求解的问题,经分解得到子问题往往不是互相独立的。若用分治法来解这类问题,则分解得到的子问题数目太多,

2016-05-29 17:51:42 450

原创 Problem3-1013

简单题意:一头母牛每年生一头小母牛,每头小母牛长到第四年的时候也能生一头小母牛,求第n年母牛的数量解题思路:利用递归,前四年f(n)=1,但到了第五年,每年都有小母牛生出小母牛,得出递归公式:f(n) = f(n-1) + f(n-3),接下来就好计算了。代码如下;#include using namespace std;int num(int a){ 

2016-05-29 17:45:08 274

原创 Prolem3-1018

题意:空储蓄罐,有一定的质量,存钱,存满,得到的最下价值思路:属于完全背包问题,和老师讲的一样!代码如下:#include  #include  #include  #include  #include  using namespace std;  int v[10005];  int w[10005];  int dp[10005];  

2016-05-27 21:41:06 252

原创 Problem3-1008

简单题意:在二维空间中,选择一条幸运值最大的路,每次的走法只能 向前走一步,或者向下走一步,或者向前走当前列数的 k 倍的列数位置(行都是当前行,k>1),求出达到右下角那点时所能得到的最大幸运值。解题思路:每个单元存此位置到右下角的最大值,先算出最后一行(因为最后一行只可以向右走)和最后一列(只可以向下走),然后从魔王的左上角那个位置开始逐个填表,对于这些位置,能走的路线是往下一

2016-05-24 08:25:39 299

原创 Problem3-1016

简单题意:整体来讲,就是在一个二维平面内走格子,规则是:一次只能移动一次,并且不能往回走,同时走过的格子不能再走第二遍,求走n步不同的解决方案!解题思路:f[n]表示走n步的方案数,x[n]表示向下走的方案数,z[n]表示向左右走的方案数;所以 f[n]=x[n]+z[n],x[n]=x[n-1]+z[n-1];z[n]=x[n-1]*2+z[n-1]所以f[n]=2*f[n-1]+x[n

2016-05-21 17:23:49 243

原创 Problem3-1022

简单题意:小偷偷东西,给出他被抓的几率,求他能偷到的最大财富。解题思路:既然是最大财富,那就是当他正好被抓到时,钱最多,在将被抓概率转化为存活概率,利用概率相乘原理,转化为01背包问题(怎么又是01背包)即可。代码如下;#include  #include  using namespace std;    struct Bank  {     

2016-05-20 21:23:11 218

原创 Problem3-1010

简单题意:有一楼梯共M级,刚开始时你在第一级,若每次只能跨上一级或二级,要走上第M级,共有多少种走法?解题思路:对于两层楼梯,你可以选择一步跨上,也可以选择分两步跨上去,一共这两种方法,所以对于N层台阶,就有f(n)=f(n-1)+f(n-2).代码如下;#include  using namespace std;  int main()  {     

2016-05-17 21:24:16 251

原创 Problem3-1011

简单题意:有一只经过训练的蜜蜂只能爬向右侧相邻的蜂房,不能反向爬行。请编程计算蜜蜂从蜂房a爬到蜂房b的可能路线数。解题思路:首先先代入几个数进行运算,通过简单归纳总结出一定的规律,即a[i] = a[i-1] + a[i+1], 然后就按照惯有的套路进行计算即可,最重要的是找到匹配的公式。代码如下:#include using namespa

2016-05-14 19:53:30 270

原创 Problem3-1017

简单题意:第一行输入几组数据,第二行第一个数字代表物体个数,第二个数代表总体积 第三行输入的是物品的价值,第四行输入的是物品的体积。物体不能拆分,已知背包的总体积,求最大能获取的价值是多少。解题思路:将前i件物品放入容量为v的背包中”这个子问题,若只考虑第i件物品的策略(放或不放),那么就可以转化为一个只牵扯前i-1件物品的问题。如果不放第i件物品,那么问题就转化为“前

2016-05-14 19:49:54 267

原创 Problem3-1003

简单题意:求最长升序子列。解题思路:这个问题是求最长升序子列。如果 f(n)>f(n-1),则 在n除的最长升序子列等于在n-1的加一,按照这种方法循环下去即可。代码如下;#include  #include  #include  using namespace std;  const int maxn=1002;  int num[maxn];

2016-05-13 21:07:34 268

原创 Problem3-1005

简单题意:给定一块砖的 长宽高,让你叠金字塔,下面砖的表面积必须大于上面的,求能叠到的最高高度。解题思路:先将给定的所有的砖分成三种,这样的话,一块砖就有三种形态,然后将所有的排序,然后挑选,最后将所选的高加到一起即可。代码如下:#include    #include    #include    #include    #include    #

2016-05-12 16:48:21 228

原创 Problem3-1024

简单题意:首先给出物品数量和手中资金,人后每样物品给出价格,需要购买时手中至少需要多少资金,还有物品本身的价值,要求求出最大资金。解题思路:一定要按q-p排序,不要按价值排序。代码如下:#include  #include  using namespace std;  //crucial  #define N 500  #define M 5000

2016-05-10 11:59:55 262

原创 Problem3-1014

简单题意:要求条折线分割平面的最大数目。比如,一条折线可以将平面分成两部分,两条折线最多可以将平面分成7部分.输入数据的第一行是一个整数C,表示测试实例的个数,然后是C 行数据,每行包含一个整数n(0对于每个测试实例,请输出平面的最大分割数,每个实例的输出占一行。解题思路:用数学方法找去规律,假设有n条折线,则分的面最多为2*n*n-n+1;代码如下;#includeu

2016-05-10 11:08:13 187

原创 Problem3-1015

简单题意:就是将一个十进制数转化成一个二进制数;解题思路:number1=number%2;number2=number1/2;并用数组记录;然后最后倒叙输出;代码如下:#includeusing namespace std;int main(){int n;while(cin>>n){int i,a[11];if(n==0)co

2016-05-08 15:01:45 216

原创 Problem3-1004

简单题意:许多的唯一主要因素是2,3,5或7被称为一个不起眼的数字。序列1,2,3,4,5,6,7,8,9,10,12,14,15,16,18,20,21,24,25,27,...示出第一20谦虚数字。搜索结果编写一个程序,发现在这个顺序打印第n个元素结果解题思路:谦卑number从1为"始祖",剩下的所有数,其实都是在此基础上乘以2,3,5,7演化出来的,:f[t]=mi

2016-05-08 14:56:35 280

原创 Problem3-1002

简单题意:求两个字符串的最长公共子序列解题思路:设c[i][j]为字符串a的第i个字符与字符串b的第j个字符为止的最长公共子序列长度,那么有两种情况:1.当a[i] == b[j]时,c[i][j]应该是前一个状态的最长公共子序列长度 + 1,而前一个状态是c[i - 1][j]呢,还是c[i][j - 1]?两者都不是,因为a[i]与b[j]匹配,a[

2016-05-07 21:39:17 223

原创 Problem3-1006

简单题意:从数字塔的塔尖的第一个数走到最下面所能得到的最大的数字和。解题思路:每个父节点会对应两个子节点,自下向上,父节点的值加上两个子节点中较大的一个的值,那么此时这最后一行的父节点又会是上一行的子节点,上一行的父节点再选这一行的子节点中较大的相加(也是最后一行的父节点)。因为每次都是选取的最大的子节点的值相加,那么当到达数塔塔尖的父节点时,它的值必定是最大。代码

2016-05-07 21:38:33 219

原创 Problem3-1001

简单题意:在组成环的n个数中求出不超过m个连续的数相加之和最大时的最大值、起始位置和终止位置(如果大于n则要减去n)解题思路:设一数组sum,sum[i]含义:所有以a[i]为结尾的序列的序列和构成一个集合,此集合的最大值就是sum[i]如1,2,3.所有以a[2]=3为结尾的序列的序列和集合是{6,5,3},因而sum[2]=6.sum的状态转移方程:sum[i]

2016-05-07 18:49:21 225

原创 专题二总结报告

一 ·首先是在写程序时遇到运算符,应该考虑的问题:(1) 一旦做乘法和加法(尤其乘法),就要考虑到会不会有整数溢出的现象,要用32位整数还是64位还是大整数.(2)一旦在有取模的运算中,做减法一定要考虑会不会出现负数,负数取模在不同的语言中结果是不一样的,所以最好的做法是加特判。(3)一旦有除法的运算,一定要考虑除数是否为0,有的话就要写特判。二·关于深度优先搜索和广度优先搜索:

2016-04-23 15:30:14 594

原创 Problem1007

简单题意:有n条绳子,分成11段相等的,问能使得最长为多长。 解题思路:直接二分答案,看二分到的值能否被剪成至少k断。 代码如下:#include#include#includeusing namespace std; #define N 10000#define exp 1.0e-9 int n,k;double num[N],su

2016-04-23 14:57:47 210

原创 Problem1003

简单题意:生日聚会上,来到的所有朋友都会领取一块饼,但是要求的是所有人都要拿到大小相同的饼!题目要求输出的是:每个人尽量拿到的最大的饼的体积是多大。这里的饼的形状是高为1的圆柱形。V=底面积*高!解题思路:求出每块饼的面积s[i],并记录面积最大的s[i]为maxs,然后在0~maxs之间进行二分得到mid,判断是否每个人都能得到面积为mid的饼,如果能则mid=left,否则right=mi

2016-04-23 11:11:14 266

原创 Problem1020

简单题意:两个相邻圆圈之和为素数解题思路:从题意中不难看出,和以前的试题很相似,用dfs进行深搜,判断相邻的两个之和是否为素数代码如下:#include #include #include #include using namespace std;const int maxn=25;bool visit[maxn];int num[maxn]

2016-04-22 21:51:44 212

原创 Problem 1027

简单题意:倒可乐,分成相同的容量,先判断能不能到相同,再求最少到多少次解题思路:广度搜索,有目标,,一直到倒可乐, 达到目标为止代码如下:#include#include#include#includeusing namespace std;bool is[101][101];int m, n, s, si, sj;struct no

2016-04-22 19:56:06 226

原创 Problem 1009

简单题意:判断是否能完成连连看,规则与我们玩的规则差不多,但不能从外围连线,这与传统的玩法有区别解题思路:这道题将BFS做一点小小的变形,即每次让一个方向的可能点全部入对列,这样能够使得拐弯次数限制到最小,标记的变量要设四个方向,每次走过的点要标记两个方向,向前和向后,显然不可能再次走到这一点以相同的方向或者反过来。其他就和一般的BFS差不多了此题虽然没做出来,可是大体题意跟思路已

2016-04-21 09:21:50 255

原创 Problem1014

此题与上题一样,简单题意:有n层电梯,输入a,b,要求你从a到b,第i层电梯可以升降ki层,但是不能小于1或大于n,计算能否到b;解题思路:解题思路: 利用数组进行标记,从第一层进行枚举向上或向下操作,若都不行,则不能完成代码如下:#include  #include  using namespace std;  const int N=200+5;

2016-04-21 09:11:23 198

原创 Problem1013

简单题意:有n层电梯,输入a,b,要求你从a到b,第i层电梯可以升降ki层,但是不能小于1或大于n,计算能否到b;解题思路:解题思路: 利用数组进行标记,从第一层进行枚举向上或向下操作,若都不行,则不能完成代码如下:#include  #include  using namespace std;  const int N=200+5;  const int

2016-04-20 10:49:54 198

基于OSVOS的半监督视频分割

使用OSVOS算法,仅使用视频的第一帧标注,可完成视频的掩码轮廓分割。

2019-08-06

python遗传算法解决八皇后问题

用python语言,通过遗传算法,解决八皇后问题,,遗传算法(Genetic algorithm)属于演化计算( evolutionary computing),是随着人工智能领域发展而来的一种智能算法。正如它的名字所示,遗传算法是受达尔文进化论启发。简单来说,它是一种通过模拟自然进化过程搜索最优解的方法

2018-11-02

空空如也

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

TA关注的人

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