自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 资源 (1)
  • 收藏
  • 关注

原创 无向图 多余的链接(并查集)

题目:无向图(多余的链接)描述给定一个无向图,这个图是在一棵树的基础上加上一条边构成的,问哪条边可以删掉使图重新变成一棵树?(保证存在有一条边删掉可以使图重新变成一棵树)如果有多个答案,那么输出输入的边中最晚出现的那条边(数据范围输入每行包括两个数字(a和b)表示节点a和节点b是相连的输出输出输入的边中最晚出现的那条边

2017-11-30 21:42:28 307

转载 快速幂

最近做题做到了关于快速幂取模的, 看了好多详解,只能说略懂~~所谓的快速幂,实际上是快速幂取模的缩写,简单的说,就是快速的求一个幂式的模(余)。在程序设计过程中,经常要去求一些大数对于某个数的余数,为了得到更快、计算范围更大的算法,产生了快速幂取模算法。[有读者反映在讲快速幂部分时有点含糊,所以在这里对本文进行了修改,作了更详细的补充,争取让更多的读者一目了然]我们先从

2017-11-27 22:36:00 185

原创 codevs 1214 线段覆盖(贪心)

题目:codevs1214思路:将输入的区间按照左小右大交换,然后按照左区间从小到大排序,左区间一样的,比较右区间,也按从小到大;然后从第一个区间开始删除后面的区间,如果后面的区间左区间大于前面的右区间,在比较前面的右区间和后面的右区间,如果前面的右区间大则删除前面的那个区间,否则删除后面的区间;代码如下:#include#include#includeusing

2017-11-24 12:22:13 390

原创 codevs 1098 均分纸牌

题目:codevs1098思路: 直接从左到右,遇到小于均值的,直接向右边拿,大于均值的,直接给右边,因为纸牌总数为堆数n的倍数,所以最后肯定能均分;代码如下:#include#includeusing namespace std;int a[105];int main(){ int n; cin >> n; int count = 0; int sum =

2017-11-23 19:50:48 480

原创 codevs 3143 二叉树

题目:codevs 3143思路:就递归解决遍历,用栈和队列也可以做到,但是有简单的何乐而不为;代码如下:#include#includeusing namespace std;int a[17][2];void prev_travel(int root){ if(root == 0) return; cout << root << " "; prev_

2017-11-23 19:19:00 324

原创 线段树的两道模板题 hdu1698 hdu1166

最近学到了线段树,觉得挺不错的一个数据结构,这里有两个标准的模板题,代码也是别人哪里看到的,自愧不如;#include #include #include #include using namespace std;#define MAXN 50005typedef long long LL;LL arr[MAXN], sum = 0;struct node { LL l,

2017-11-21 18:24:00 384

原创 C++实现全排列(字典序)

以前都是写用复杂的逻辑语言实现全排列,直到发现了C++中原来已经封装好了一个全排列函数:next_permutation(s.begin(),s.end()),头文件这个函数会自动生成下一个字典序的排序,对应的还有prev_permutation,生成上一个字典序排序,炒鸡的简单明了,省去一大堆复杂的循环~~;代码如下:#include #include #include#inc

2017-11-20 19:07:12 4941

原创 放苹果

题目:给定m个苹果和n个盘子,问有多少种放苹果的方法,盘子允许为空,T组测试数据。测试数据:17 38思路:假如n&gt;m,则必有m-n个盘子为空,等价于fun(m,m);    假如n&lt;=m,假设每个盘子都有一个,则放法等价于fun(m-n,n);           假设至少有一个盘子是空的,则放法等价于fun(m,n-1);所以总得放法等价于fun(m,n) = fun(m,n-1)...

2017-11-20 18:59:54 211

原创 codevs1083+codevs1160 模拟

题目:codevs1160 codevs1083思路:模拟题主要就是找规律吧代码如下:codevs1160 :#include#include#define right 1#define up 2#define left 3#define down 4using namespace std;int n;int m = 1;int a[100][100];

2017-11-18 01:05:20 6666

原创 codevs1501二叉树 搜索

题目:codevs1501思路:就是简单的搜索,注意好几个细节;代码如下:#include#includeusing namespace std;int a[20][2];int wide;int getdeep(int i){ int ld = 0,rd = 0;//一定要初始化,不然会出错 if(a[i][0] == 0 && a[i][1] == 0)re

2017-11-18 01:02:01 276

原创 codevs 1014 装箱问题

题目:codevs 1014思路:我是深搜直接求得答案。还有一种dp的方法,都挺简单的;代码如下:dfs:#include#includeusing namespace std;int v,n;int minv = 1<<30;int a[40];int sum;bool cmp(int x,int y){ return x>y;}void dfs(int x

2017-11-15 21:20:48 228

原创 codevs 1010 过河卒 dfs

题目:codevs1010 过河卒思路:感觉没啥好说的,一看到题就想到了dfs(深度优先搜索),按理说bfs(广度优先搜索也可以做出来),不过我一次就过了(这感觉真爽),就没尝试bfs;代码如下:#include#includeusing namespace std;int a[25][25];int bx,by;int cx,cy;int coun

2017-11-14 21:48:00 361 2

原创 codevs 1009 产生数 floyd算法

题目:codevs1009 产生数思路:一开始没看清题目,以为就是简单地并查集,结果一直错,仔细看了看例子才发现我太天真的了,这题是用Floyd算法求点到点之间的连通关系,可以看成是一张10*10的图: 012345678900000000000100

2017-11-14 12:41:27 231

转载 nyoj 1809 思路题

转载自: 郑大第九届校赛-热身赛-zzulioj-1809-make pair题目:1809: make pairTime Limit: 1 Sec Memory Limit: 128 MB Submit: 87 Solved: 65SubmitStatusWeb Board Descriptionpair是c++标准模板库中一种十分有用的模板类型,它是

2017-11-13 00:06:27 193

转载 codevs1001 舒适的路(并查集+枚举)

题目:codevs1001思路:看了好多题解才会的,然后发现其实是我不会并查集,恶补了一下并查集;先把所有路按权值从大到小排序,然后依次枚举,假如想知道的景点之间有直达的路,肯定输出1无疑。题解:Code_Together的博客;并查集:并查集(Union-Find)算法介绍 - CSDN博客;代码如下:#include#include#includeusing namesp

2017-11-12 23:53:13 198

原创 codevs 1013 求先序排列

题目:codevs 1013;思路:已知后序遍历和中序遍历,不难知道后序的最后一个即为二叉树的根节点,在中序中找到这个节点,就可以知道左右子树的长度,多次递归即可求解,这题其实可以不用先序遍历二叉树,因为后序反过来就是先序了,所以建树的同时输出即可~ps:一开始弄错了substr()函数第二个参数的含义,其第二个参数为截取字符串的长度,我错解为结束截取的位置,导致各种bug,不过终于还是改

2017-11-11 19:20:23 451

原创 codevs 1008 选数 dfs

#include#include#includeusing namespace std;int a[25];int n ,k , count_t = 0;bool isprime(int t){ for(int i = 2;i <= sqrt(t)+1;i++) { if(t%i == 0) return false; } return true;}void dfs(

2017-11-10 22:29:11 215

C++实现链表,模板类

C++实现的模板链表类,没有用到STL的list,是用指针实现的。

2018-07-06

空空如也

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

TA关注的人

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