自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

笔记

个人笔记,欢迎交流!

  • 博客(21)
  • 收藏
  • 关注

转载 最小生成树(prime算法、kruskal算法) 和 最短路径算法(floyd、dijkstra)(转)

原网址 带权图分为有向和无向,无向图的最短路径又叫做最小生成树,有prime算法和kruskal算法;有向图的最短路径算法有dijkstra算法和floyd算法。  生成树的概念:联通图G的一个子图如果是一棵包含G的所有顶点的树,则该子图称为G的生成树 生成树是联通图的极小连通子图。所谓极小是指:若在树中任意增加一条边,则 将出现一个回路;若去掉一条边,将会使之编程非连通图。生成树各边的权 值总和

2015-05-31 08:23:40 997

原创 poj1068

这题分类在模拟题。。可能是我太水了。。觉得还是没有想象模拟题那么水。。需要动下脑筋。。。 题意:给你两种规则对同一串()的编码,先给你第一种按照第一个)左边有多少个(的个数的编码,你输出第一个)和它往左对应(中间有多少个()的个数的编码。 我的方法是,先按照第一个规则,模拟出这个()串,再按照第二个规则扫一遍,模拟嘛。。就是这么直接嘛(肯定有更简单的)。 还是犯了数组开小,wrong了几次的毛

2015-05-29 15:23:43 402

原创 poj3126(bfs)

码力 太差。。。开始 用int数组 存 字符串 用dfs乱搞。。。没搞出来。。。看了别的 用string 随便一下bfs就出来了。。ym 对于这种 输出最短的条件 就是明显bfs。。。果然别人的题解 就是代码精炼 优雅 还学习 了新东西 pair<>代替结构体。方法:1.建立一个队列,队列中的元素由string和int构成,string表示当前串,int表示从初始串到当前串的最小转变步数。 2.

2015-05-29 11:40:54 411

转载 c++ 中 pair 的 使用方法

pair的类型:pair 是 一种模版类型。每个pair 可以存储两个值。这两种值无限制。也可以将自己写的struct的对象放进去。。pair<string,int> p;pair<int ,int > p;pair

2015-05-29 11:33:52 406

转载 make_pair

好记性不如烂笔头:在《C++ Templates》看到这个函数,发现正是前段时间写项目程序所要用到的,可惜当时还不知道有这个用法,当时是自己写了个结构体。。】 Utilities 由短小精干的类和函数构成,执行最一般性的工作。 这些工具包括: general types 一些重要的C函数 numeric limitsPairs C++标准程序库中凡是“必须返回两个值”的函数, 也都会

2015-05-29 11:32:57 404

原创 hdu1495(非常可乐 dfs)

题目链接 这题题意真让我想到小时候做过的脑筋急转弯,讲的是给你三个杯子,第一个杯子大小是后两个杯子大小之和,且第一个杯子开始是满的,其他两个是空的,问你经过多少次倒来倒去,能够是两个杯子里一样多平分最初可乐总量也就是第一个杯子的大小,不能就输出NO。 开始真的没有思路,联想了一点,如果杯子大小是奇数,肯定就不能倒出来,因为杯子大小都是整数不能倒出0.5出来吧。 后来看了别人题解。。。(果然题做

2015-05-26 22:43:08 1046

原创 poj2386(dfs)

搜索的水题吧!#include<cstdio>char a[101][101];int n,m,next[8][2]={{-1,-1},{-1,0},{-1,1},{0,1},{1,1},{1,0},{1,-1},{0,-1}};void dfs(int x,int y){ a[x][y]='.'; for(int i=0;i<8;i++) { int tx=

2015-05-24 21:19:21 436

原创 poj2676数独(dfs)

#include<cstdio>using namespace std;int v[100][2],a[10][10],num,flag;bool judge(int x,int y,int k){ for(int i=0;i<9;i++) { if(a[x][i]==k) return 0; if(a[i][y]==k) return 0;

2015-05-24 16:53:48 523

原创 poj2251(bfs坑爹的领悟)

真么想到这么基础一道题 给我了这么多坑爹的领悟。。。 1.坑爹的是竟然把这题目分类在了深搜里面,然后我就屁颠屁颠深搜,妈蛋TLE,后来总结迷宫类问题果断bfs简单多了,dfs还有TLE的风险,一不小心就递归的超时。 2.坑爹队列的结构体数组开小了,wrong的我不想做其他题了。(细心,或者用STL里面队列)。 3.还有一点就是,字符串输入的问题,以后都用scanf(“%s”,…)读,考虑一个一

2015-05-23 23:32:55 644

原创 POJ 3984(bfs)

这题求搜索的最短路径,如果只是输出步数,我觉得bfs,dfs都可以,但是它要输出路径,我想了想bfs如果每次都存下每次搜索后的路径,再比较,或是先假设存的是最短的路径,再比较,都有点麻烦,用bfs找到后,不就是现成最短路径吗? 还有一个问题 是这个路径怎么输出,有的算法书,特地在结构体加一个变量记录每次下一个节点存它的父亲,我就想怎么正序输出了?都是反过来的啊。。。。后来看了别人的题解 原来是 递

2015-05-18 01:32:42 573

原创 poj1321

用结构体存每一次确定放点后,变换后的地图情形。#include<cstdio>#include<algorithm>struct Map{ char a[10][10]; int x;};int n,k;long long sum;void dfs(Map tmp,int step){ if(step==k+1) { sum++;

2015-05-15 10:57:46 427

原创 poj1426(bfs dfs)

对于一个整数,问大于等于这个整数的一个整数能够被其整除的整数,且这个整数只能包括0和1解题思路:看了有些大神做法,取模神马的好复杂,其实可以直接从前往后两个方向的深搜就可以搜到。#include<cstdio>#include<algorithm>long long n,DEP;long long s;bool flag;void dfs(long long i,int step){

2015-05-15 10:39:48 503

原创 hdu1018(大水题)

题意:给你一个 n ,计算 n! 有多少位数 分析: 123456=1.23456*10^5; log10(123456)=5.09151; log10(1.23456*10^5)=log10(1.23456)+log10(10^5)=0.09151+5; 故int(log10(n))+1 就是n的位数#include<cstdio>#include<cm

2015-05-15 00:56:42 347

原创 hdu1223(贪心+并查集=kruskal算法)

这题意思是,求出形成不成环的图路线权值之和的最小值(每两个城市路线有权值),就先用一个结构体,把每组中那两个城市,城市之间权值,存下来,用这个权值排序,按从小到大,连接每两个城市,最后输出这个和。据称这个算法叫kruskal算法,还很很好理解的。#include<cstdio>#include<algorithm>using namespace std;struct note{ in

2015-05-13 16:57:35 512

原创 codeforces 416C C. Booking System

Booking SystemTime Limit:1000MS Memory Limit:262144KB 64bit IO Format:%I64d & %I64u Submit StatusDescriptionInnovation technologies are on a victorious march around the planet. They integrate

2015-05-06 19:48:32 578

原创 CodeForce 492C(贪心)

Vanya and ExamsVanya wants to pass n exams and get the academic scholarship. He will get the scholarship if the average grade mark for all the exams is at least avg. The exam grade cannot exceed r. Va

2015-05-06 19:36:51 579

原创 Codeforces 383 A. Milking cows(贪心)

这题题意就是 1表示牛向右看,0表示牛向左看,怎么杀牛,能让牛看到自己同伴被杀受到的惊吓最小。思路就是,先从左往右,把向右看的的牛杀掉,(向右看的牛会看到,所以会有惊吓),再从右往左,把向左看的牛杀掉。(这次是没有惊吓的)。首先从左往右扫,遇到1(向右看的牛)先用一个ans变量记录下加1,(因为目前还没有牛看到同伴被杀)直到遇到0(左看的)sum+=ans,这样 ,一遍下来sum就是惊吓牛的总数。

2015-05-06 19:29:51 836 1

原创 CodeForceS#276-B(贪心)

一个正方形的城市面积,告诉你它内部或边界上点的坐标,求它的最大值,很简单的思路,就是存边界点最大值,再比较那条边最长,就是正方形的边长。贪心#include<cstdio>#include<algorithm>const int inf=1e9+10086;using namespace std;int main(){ int n; scanf("%d",&n);

2015-05-06 18:45:36 570

原创 Codeforces Round #246 (Div. 2) A. Choosing Teams

排个序,对每个队的尾判断一下,贪心水题#include<cstdio>#include<algorithm>using namespace std;int a[2010];int main(){ int n,k; scanf("%d %d",&n,&k); for(int i=0;i<n;i++) scanf("%d",&a[i]); sor

2015-05-06 00:13:59 304

原创 hdu4882

典型的贪心,水题,收获是学会sort使用cmp对结构体排序!#include<cstdio>#include<algorithm>using namespace std;typedef struct s{ int Ei; int Ki;}S;S code[10010];int s[10010];int cmp(S a,S b){ return a.Ei*b.

2015-05-06 00:08:00 428

原创 CodeForces 460C--- Present(二分+贪心,还有个地方会TLE)

本题链接 本题 大意就是 给你一个数组 ,大小表示 花的高度 输入告诉你 花的个数,浇几天花(一天长一个单位)和浇花能覆盖花的个数,问你 浇完后高度最小值的最大情形。 虽然最近 刚学了二分 自认为 还是了解比较清楚,但是做这题开始没看出来是二分,惭愧。。。。 这题就是明显二分,在0~1e10范围内二分,看能满足这个题意的值。有个细节要注意,在模拟浇花那一个范围內花都会被 浇的时候,开始就想直接

2015-05-05 18:16:20 704 1

空空如也

空空如也

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

TA关注的人

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