![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
2015
文章平均质量分 57
zhouzhenghuac
这个作者很懒,什么都没留下…
展开
-
拓扑排序+最小生成树
由于上一节课的总结我没有放上来,所以这次就放l两课吧。1、拓扑排序:拓扑排序就是指知道一个数据中两个数据之间的前后关系,从而知道整个数据的具体顺序。士兵排序(网上找的) 问题描述: 有n个士兵(1≤n≤26),编号依次为A、B、C,…… 队列训练时,指挥官要把一些士兵从高到矮依次排成一行。但现在指挥官不能直接获得每个人的身高信息,只能获得“p1比p2高”这样的比较结果(p1,p2∈{‘A’原创 2016-08-07 10:56:21 · 815 阅读 · 0 评论 -
6-6 并查集练习——ttime
#include #include #include using namespace std;ifstream fin("ttime.in");ofstream fout("ttime.out");#define cin fin#define cout foutint fa[100001];int u_f(int x){ int root=x;原创 2016-08-04 20:24:38 · 221 阅读 · 0 评论 -
6-6 并查集练习——friend
#include #include #include using namespace std;int fa[100001];ifstream fin("friend.in");ofstream fout("friend.out");#define cin fin#define cout foutint u_f(int x) //(和tree一样) 并查集的原创 2016-08-04 20:24:35 · 307 阅读 · 0 评论 -
5-30 并查集 tree
#include #include using namespace std;ifstream fin("tree.in");ofstream fout("tree.out");#define cin fin#define cout foutint fa[100001];bool check[1000001];int u_f(int x){ int r原创 2016-08-04 20:24:32 · 240 阅读 · 0 评论 -
并查集 5-30 tree ------错误方法
#include using namespace std;int fa[100000];// fatherint f_u(int x){int root=x;while(fa[root]!=root) root=fa[root];while(fa[x]!=x){int y=fa[x];fa[x]=root;x=y; }return root;原创 2016-08-04 20:24:29 · 189 阅读 · 0 评论 -
n种钱几种分法程序
#include #include using namespace std;bool ch[1000000];int a[100000];int main(){ int n; cin>>n; long long sum=0; for(int i=0;i { cin>>a[i]; sum+=a[i]; } for(int i=0;i ch[i]=false; ch[0]=true原创 2016-08-04 20:24:27 · 285 阅读 · 0 评论 -
5-16 冒泡排序
#include #include using namespace std;int main(){ int n; cin>>n; int in[n+1]; for(int i=0;i cin>>in[i]; for(int i=0;i for(int j=i+1;j if(in[i] swap(in[i],in[j]); for(int i=0;i cout cout re原创 2016-08-04 20:24:24 · 230 阅读 · 0 评论 -
5-16 插入排序
#include #include using namespace std;int main(){ int n; cin>>n; int in[n+1],ans[n+1]; for(int i=0;i cin>>in[i]; ans[0]=in[0]; for(int i=1;i { ans[i]=in[i]; //插入 for(int j=i;j>=0;j--)原创 2016-08-04 20:24:21 · 213 阅读 · 0 评论 -
5-16 选择排序
#include #include using namespace std;int main(){ int n; cin>>n; int in[n+1]; cin>>in[0]; int maxx=in[0]; //最大值 for(int i=1;i { cin>>in[i]; if(maxx if(minn>in[i]) minn=in[i]; } int t=0; cou原创 2016-08-04 20:24:18 · 175 阅读 · 0 评论 -
4-25 字符串
定义:string 变量名;赋值:string 变量名(字符串);string 变量名 (字符数量,字符);(字符数量个字符)变量名 = 字符串;等价于 变量名.assign("字符串");输入:cin>>变量名;输出:cout字符串的长度 length()变量名.length(); '\0'不在长度范围内字符串中的一个字符:s[ i ] 等价于原创 2016-08-04 20:24:15 · 310 阅读 · 0 评论 -
tree 用点、边的算法
由于江老师说上次那个算法是以前的,所以我就用了新学的计算边数与点数的算法……程序:<span lang="EN-US" style="font-size:14.0pt;font-family:Consolas;mso-bidi-font-family:Consolas;color:green;mso-font-kerning:0pt;" >#include <span lang="原创 2016-08-04 20:24:41 · 232 阅读 · 0 评论 -
galaxy 原来的方法——超时(没有压缩路径)
因为没有压缩路径,因此访问每一个成员的根会十分的慢,因此十分容易超时(因为超时,所以不知道对不对……)#include #include #include using namespacestd; ifstreamfin("galaxy.in"); ofstreamfout("galaxy.out"); #definecin fin #definecou原创 2016-08-04 20:24:44 · 282 阅读 · 0 评论 -
6-17 创新班第十课
首先,江老师评价了一下我们的博客,说我的tree那题没有用新学的方法做,所以我就在博客上贴了程序 在这里,江老师讲了两个很重要的概念: 1、静态和动态: 按照tree那题来举例:按照杨鸿飞的方法压缩路径就是属于静态,而用我们学的方法就是属于动态:静态:原创 2016-08-04 20:24:46 · 278 阅读 · 0 评论 -
LCA
表示上lca那节课我没去,所以程序什么的可能变得有漏洞或者是不标准。#include#include #include using namespace std;ifstream fin("lca.in");ofstream fout("lca.out");#define cin fin#define cout foutint n;struct Tnode{ int h,left,right,fa;原创 2016-08-04 20:25:17 · 183 阅读 · 0 评论 -
创新班20课3题+总结
<span style="font-family:宋体;mso-ascii-font-family:Calibri;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:宋体;mso-fareast-theme-font:minor-fareast;mso-hansi-font-family:Calibri;mso-hansi-the原创 2016-08-04 20:25:14 · 351 阅读 · 0 评论 -
2015NOIP总结
今年的noip,是我第一次考noip,经验除了是平时老师给我们的真题让我们做以外,也就没有了。虽然这次我才考了240分,但至少也是一个收获经验的机会,也值得去好好总结。首先说说心态问题,其实我去考试时也是不怎么紧张的,但是考试考着考着就变得紧张起来。我回想了一下,大概是我看完所有题目后,总觉得第3题不会做,然后之后就非常紧张。我想以后应该要先给自己定一个目标,觉得考到了这个目标之后就算合格,考原创 2016-08-04 20:25:11 · 308 阅读 · 0 评论 -
宽度搜索
7-28 宽度搜索 首先再次说明一下宽度搜索的概念与原理。宽度搜索,就是宽度优先搜索(也叫广度优先搜索),所以宽度是优先。我们都知道深度搜索是一下子搜到底,然后再通过回溯之类的方式返回到上一个分支,然后继续往下搜。也就是深度优先;而宽度优先搜索就是一层一层地找:先找一层,记录下来,然后继续搜下一层。 这时我们就需要两个指针:head和tail。head是头指针原创 2016-08-04 20:25:06 · 815 阅读 · 0 评论 -
动态规划
动态规划7-30,我们学习了一个比较重要的知识——动态规划。动态规划,从字面上理解就是动态地取规划某件事情,使其得到最优结果。规划之中就会有选择到底要还是不要,做还是不做,所以动态规划就是要选择最优。动态规划有4个核心:阶段、最优、子问题和边界。在分析动态规划这种问题时只要找出这4个核心,那变成解决问题起来就比较简单了。下面就通过一道题目来了解一下4个核心分别什么以及如何找出这4个原创 2016-08-04 20:25:03 · 661 阅读 · 0 评论 -
2015信息学夏令营第1、2……天——搜索与递归
7-26,是我们2015年信息学夏令营的第一天,我们主要就是学习了搜索。 ================================================= 搜索又分宽度搜索与深度搜索。这两个搜索又有什么区别呢?深度搜索是指深度优先搜索,宽度搜索就是宽度优先搜索。搜索主要是看搜索树: ——这颗(搜索)树的开始的点就是源点。 小技巧原创 2016-08-04 20:25:00 · 788 阅读 · 1 评论 -
water 参考程序
#include #include #include using namespace std;ifstream fin("water.in");ofstream fout("water.out");#define cout fout#define cin finstruct Tnode{ int copy; int self; int fa; char c; int root;};Tnode a[原创 2016-08-04 20:24:54 · 251 阅读 · 0 评论 -
string (hash版)
由于在学校,所以暂不写前面那一大堆乱七八糟的东西了,先发一下程序吧 #include #include #include #include #define mod 1000000007#define wei 31using namespace std;string S,T;long long geth(string &s){ long long ans=0; for(int i=0;i原创 2016-08-04 20:24:52 · 205 阅读 · 0 评论 -
爆炸化合物(explosion)
这题按照江老师告诉我们探索题目的方法,我就列举了一些不能上车的一些例子:<span lang="EN-US" style="font-size:12.0pt;font-family:宋体;mso-bidi-font-family:宋体;mso-font-kerning:0pt;" ><table class="MsoTableGrid" border="1" cellsp原创 2016-08-04 20:24:49 · 904 阅读 · 0 评论 -
创新班21课总结
创新班早上还是讲了salesman那3题,下午就讲了关于树的图论。 先是salesman,有3种做法: 第1种: 然后就一直按照123走,直到做完。但是如果每次都找一遍最大值,那就是超时的60分O(n?)算法了,但是我们还要进一步优化,那就是用胜者树来维护左边那一部分的最大值(这个我也搞了好久)。每次找到左边后就把左边的修改成-1。找到右边,就把找到的位置与当前位置之间的都插入进胜者树中。这样左边原创 2016-08-04 20:25:19 · 274 阅读 · 0 评论