ReZero's Utopia.

ReZero's Utopia.

Everything is permitted.

击鼓传花
就是转圈题要么链表,要么取余 设有N个人围成一个圈,每人手里都握着一个令牌写明一个数字(随机生成的)。从第一个人开始玩“击鼓传花”游戏,第一个击的次数为其令牌上写明的数字数(假设为m1)。第m1个人出列。下次再从第m1+1个人开始新的“击鼓传花”击的次数也为其令牌上写明的次数,等于该次数的人出列。重复以上过程直到所有人都出列为止。 #include <iostream> #include <vector> #include <algorithm> using namespace std; typedef struct node{ int...
求后缀表达式
这个题网上各种乱七八糟的代码这里对方法总结一下把代码写得稍微能看一点~个屁啊。。。。 最叼解释大神不过一句话带过 规则:从左到右遍历表达式的每个数字和符号,遇到是数字就进栈,遇到是符号,就将处于栈顶两个数字出栈,进行运算,运算结果进栈,一直到最终获得结果。 //中缀表达式转后缀表达式的方法: //1.遇到操作数:直接输出(添加到后缀表达式中) //2.栈为空时,遇到运算符,直接入栈 //3.遇到左括号:将其入栈 //4.遇到右括号:执行出栈操作,并将出栈的元素输出,直到弹出栈的是左括号,左括号不输出。 //5.遇到其他运算符:加减乘除:弹出所有优先级大于或者等于该运算符的栈顶元素,然...
有序树转二叉树求深度
只是求个深度所以按照父子关系编码就好了 #include <bits/stdc++.h> using namespace std; int n, answer, prev[30010]; vector<int> G[30010]; void bfs1(int root, int step){ //cout << "root" << root << " step : " << step <<endl; if(G[root].empty()){ ...
哈夫曼编码
给定一个字符串,进行哈夫曼编码 #include <bits/stdc++.h> using namespace std; typedef struct node{ int num; string data; node(int _num, string _data){ num = _num; data = _data; } }node; bool operator<(const node &a, const node &b){ return a.num > b.num; } int...
Python装饰器
调用的代码量才是关键,为了减少代码量,考虑使用函数,当多个函数需要增添同种功能时,可以两种方法,定义这个功能,为每个函数添加这个功能,或者使用装饰器* What? * 简单说装饰器就是一个修饰函数的函数 ,或者说一个参数是函数的函数。 #这是装饰器定义def log_newer(func): def wrapper(*args, **kwargs): logging.warn("%s is running" % func.__name__) return func(*args, **kwargs) return wrapper def see(): ...
坐在马桶上看算法:只有五行的Floyd最短路算法
此算法由Robert W. Floyd(罗伯特·弗洛伊德)于1962年发表在“Communications of the ACM”上。同年Stephen Warshall(史蒂芬·沃舍尔)也独立发表了这个算法。Robert W.Floyd这个牛人是朵奇葩,他原本在芝加哥大学读的文学,但是因为当时美国经济不太景气,找工作比较困难,无奈之下到西屋电气公司当了一名计算机操作员,在IBM650机房值夜班,并由此开始了他的计算机生涯。作者:ahalei来源:51CTO博客|2014-03-26 09:04 收藏 分享 暑假,小哼准备去一些城市旅游。有些城市之间有公路,有些城市之间则没有,如...
拓扑排序问题(队列实现)
拓扑排序方法: 找到所有入度为0的点插进队列 选择一个并输出它 然后删掉与之关联的所有边(即任何与之相连的入度-1) 删除过程遇到入度为0点插入队列 重复第二步,直到队列中无0点 优化:如果要求最小字典序 用反向拓扑加优先队列 #include <bits/stdc++.h> using namespace std; vector<int> G[5020]; map<string, int> maps; map<int, string> mapr; struct less_cmp{ bool operator()...
通畅工程问题
在n个城市之间建设网络,只需保证连通即可,求最经济的架设方法。input 有多组输入数据。每组第一行输入三个整数n、m、c(1<=n,m,c<=100000),分别代表城市数量,可建道路数量和单位长度道路修建费用。接下来m行每行三个整数u、v(1<=u,v<=n)、d(1<=d<=100000)。代表可建道路的起点城市、终点城市和长度。 output 每组数据输出一行,输出数据组数和使所有城市连通的最小费用,无法全部连通输出-1。 Kruskal算法的步骤:1.对所有边进行从小到大的排序。 2.每次选一条边(最小的边),如果如果形成环,就不加入(u...
(转)并查集
本文由 简悦 SimpRead 转码, 原文地址 http://blog.csdn.net/dellaserss/article/details/7724401 这个文章是几年前水 acm 的时候转的, 当时也不知道作者是谁, 要是有人知道的话说一下吧 并查集是我暑假从高手那里学到的一招,觉得真是太精妙的设计了。以前我无法解决的一类问题竟然可以用如此简单高效的方法搞定。不分享出来真是对不起 party 了。(party:我靠,关我嘛事啊?我跟你很熟么?) 来看一个实例,杭电 1232 畅通工程 首先在地图上给你若干个城镇,这些城镇都可以看作点,然后告诉你哪些对城镇之间是有道路直接相连...
八皇后问题
#include <bits/stdc++.h> using namespace std; int answer[92]{ 15863724,16837425,17468253,17582463,24683175,25713864,25741863,26174835,26831475, 27368514,27581463,28613574,31758246,35281746,35286471,35714286,35841726,36258174, 36271485,36275184,36418572,36428571,36814752,36815724,36824175,...
avatar
ReZero
大屁水饺的理想国.