
天梯赛
志存高远CS
这个作者很懒,什么都没留下…
展开
-
天梯赛喊山
#include #include #include #include #include using namespace std;int vis[10001];vector c[10005];typedef pairP;queue que;int bfs(int t){ int x,y,ans,ani; que.push(P(t,0)); ans=0原创 2017-03-13 19:26:59 · 392 阅读 · 0 评论 -
深度优先与广度优先
BFS与DFS的讨论:BFS:这是一种基于队列这种数据结构的搜索方式,它的特点是由每一个状态可以扩展出许多状态,然后再以此扩展,直到找到目标状态或者队列中头尾指针相遇,即队列中所有状态都已处理完毕。DFS:基于递归的搜索方式,它的特点是由一个状态拓展一个状态,然后不停拓展,直到找到目标或者无法继续拓展结束一个状态的递归。 优缺点:BFS:对于解决最短或最少问题特别有效,而且寻原创 2017-03-15 21:03:19 · 305 阅读 · 0 评论 -
天梯赛n个数求和
#include long long gcd(long long a,long long b){ if(a == 0) return 0; else return (b == 0) ? a : gcd(b, a % b);}int main(){ int N; long long lcp; long long a,b,c,d; int i = 1;原创 2017-03-16 15:24:49 · 306 阅读 · 0 评论 -
万能头文件
最近在打cf时赛后翻阅别人的代码总是会发现一个陌生而奇怪的头文件#include奇怪之处就在于基本上所有的代码只要用了这个头文件就不再写其他头文件了。百度过后仿佛打开了新世界的大门,头文件居然还可以这样用!!!#include包含了目前c++所包含的所有头文件!!!!从此开启开挂般的人生啊!! 现在再看下面这一堆乱七八糟的头文件显得莫名的冗杂: 1 #inclu原创 2017-03-16 15:43:23 · 1182 阅读 · 0 评论 -
栈的应用
Given a stack which can keep MMM numbers at most. Push NNN numbers in the order of 1, 2, 3, ..., NNN and pop randomly. You are supposed to tell if a given sequence of numbers is a possible pop s原创 2017-03-16 21:50:42 · 268 阅读 · 0 评论 -
实现数字逆序的方法
很多时候需要实现数字逆序,比如456逆序之后为654,依此类推。首先考虑十进制的情况,想到读入一个数时,对10取余数,然后除10,逐渐输出,需要考虑的是负数时需要通过一个负号变为正数,即#includevoid main(){ int n; scanf("%d",&n);if(n<0){n=-n;}while(n>0){ printf("%d",n%10);原创 2017-08-08 17:33:34 · 4543 阅读 · 0 评论 -
红色警戒思考
天梯赛题目红色警戒,是一个图的连通性问题,大概可以考虑dfs邻接矩阵,dfs邻接表vector,并查集三种思路#include <bits/stdc++.h>using namespace std;int a[1000][1000],n,sum=0,m;int vis[55000];/* run this program using the console pauser or ...原创 2018-03-26 14:26:47 · 441 阅读 · 1 评论 -
最长上升子序列
刚刚在写最长上升子序列用传统方法一直有几个点很难通过,翻博客发现一种超级简单解法,复杂度也相对较低#include <bits/stdc++.h>using namespace std; /* run this program using the console pauser or add your own getch, system("pause") or input loo...原创 2018-03-22 10:22:21 · 161 阅读 · 0 评论 -
列车调度思考
原始的贪心模拟列车调度算法如下#include<bits/stdc++.h>using namespace std;int main(){ int n,i,j=0,flag,cnt=0,t,a[100010],b[100010]; cin>>n; memset(b,0,sizeof(b)); cin>>a[0]; b[0]=a[0]; for(i...原创 2018-03-26 16:05:32 · 397 阅读 · 0 评论 -
愿天下有情人都是失散多年的兄妹思考
这个题可以用dfs,bfs等等方法去看五代的情况,用dfs挺复杂的#include<bits/stdc++.h>using namespace std;int cnt=0;set<int> c;int vis[100100],exist[100100],yvis[100100];struct people{ int sex; int id; int f...原创 2018-03-26 19:14:18 · 445 阅读 · 0 评论 -
C++map实现
map最基本的构造函数mapmapstring; mapmapint;mapmapstring; mapmapchar;mapmapchar; mapmapint;//这几个是最基本的,当然还有其它的构造函数的12345671234567向map中添加数据使用insert方法来添加数据mapmaplive;1. maplive.insert(pai原创 2017-03-15 19:51:28 · 4325 阅读 · 0 评论 -
二叉树问题综合求解
6 玩转二叉树 (25分)给定一棵二叉树的中序遍历和前序遍历,请你先将树做个镜面反转,再输出反转后的层序遍历的序列。所谓镜面反转,是指将所有非叶结点的左右孩子对换。这里假设键值都是互不相等的正整数。输入格式:输入第一行给出一个正整数N(\le≤30),是二叉树中结点的个数。第二行给出其中序遍历序列。第三行给出其前序遍历序列。数字间以空格分隔。输出格式:在一行原创 2017-03-24 13:24:12 · 881 阅读 · 0 评论 -
红黑
1:红与黑查看提交统计提问总时间限制: 1000ms 内存限制: 65536kB 描述有一间长方形的房子,地上铺了红色、黑色两种颜色的正方形瓷砖。你站在其中一块黑色的瓷砖上,只能向相邻的黑色瓷砖移动。请写一个程序,计算你总共能够到达多少块黑色的瓷砖。输入包括多个数据集合。每个数据集合的第一行是两个整数W和H,分别表示x方向和y方向瓷砖的数量。W和H都原创 2017-03-15 15:30:41 · 385 阅读 · 0 评论 -
天梯赛对称字串
#include using namespace std;int main() { string s; getline(cin, s); int maxvalue = 0, temp; int len = s.length(); for(int i = 0; i < len; i++) { temp = 1; for(in原创 2017-03-11 23:21:16 · 215 阅读 · 0 评论 -
天梯赛集合相似度
#includeusing namespace std;int n;set u[55];void f(int a,int b){ int same=0; set::iterator it; for(it=u[a].begin(); it!=u[a].end(); it++) { if(u[b].find(*it)!=u[b].end(原创 2017-03-11 23:48:40 · 308 阅读 · 0 评论 -
C语言天梯赛储备函数
C与C++:char *strchr(const char* _Str,char _Val)char *strchr(char* _Str,char _Ch)头文件:#include 功能:查找字符串_Str中首次出现字符_Val的位置说明:返回首次出现_Val的位置的指针,返回的地址是被查找字符串指针开始的第一个与Val相同字符的指针,如果Str中不存在Val则返回NULL。原创 2017-03-13 16:57:40 · 674 阅读 · 0 评论 -
天梯赛训练集
一个整数“犯二的程度”定义为该数字中包含2的个数与其位数的比值。如果这个数是负数,则程度增加0.5倍;如果还是个偶数,则再增加1倍。例如数字-13142223336是个11位数,其中有3个2,并且是负数,也是偶数,则它的犯二程度计算为:3/11×1.5×2×100%3/11\times 1.5\times 2\times 100\%3/11×1.5×2×100%,约为81.82%。本题就请你计算一原创 2017-03-13 19:47:49 · 329 阅读 · 0 评论 -
搜索问题综合
喊山,是人双手围在嘴边成喇叭状,对着远方高山发出“喂—喂喂—喂喂喂……”的呼唤。呼唤声通过空气的传递,回荡于深谷之间,传送到人们耳中,发出约定俗成的“讯号”,达到声讯传递交流的目的。原来它是彝族先民用来求援呼救的“讯号”,慢慢地人们在生活实践中发现了它的实用价值,便把它作为一种交流工具世代传袭使用。(图文摘自:http://news.xrxxw.com/newsshow-8018.html)原创 2017-03-23 17:34:45 · 402 阅读 · 0 评论 -
程序设计预算法二期末考试
1:大盗阿福查看提交统计提问总时间限制: 1000ms 内存限制: 65536kB 描述阿福是一名经验丰富的大盗。趁着月黑风高,阿福打算今晚洗劫一条街上的店铺。这条街上一共有 N 家店铺,每家店中都有一些现金。阿福事先调查得知,只有当他同时洗劫了两家相邻的店铺时,街上的报警系统才会启动,然后警察就会蜂拥而至。作为一向谨慎作案的大盗,阿福不原创 2017-04-09 15:03:44 · 527 阅读 · 0 评论 -
fill函数与编程无穷大
编程中无穷大的设定很多人可能设为0x7fffffff,这个数的确是32-bit int的最大值,符号位为0,其他的都是1但在很多情况下,0x7fffffff会出现错误,比如溢出,这样两个无穷大数相加会变成负数,还有如在做dijkstra求最短路时,当做松弛操作,判断if (d[u]+w[u][v]为了尽量避免以上的错误,我们可以改变无穷大的设定,可以将0x3f3f3f3f设为无穷大,0原创 2017-03-24 09:21:53 · 382 阅读 · 0 评论 -
一些路径问题
#include #include using namespace std;int maze[7][7], pre[30], vis[30];int dir[4][2] = {{1,0},{-1,0},{0,1},{0,-1}};bool isLeagal ( int r, int c ){ if ( r 4 || c > 4 ) return false; if ( m原创 2017-03-23 14:45:07 · 513 阅读 · 0 评论 -
天梯赛决赛题目
题的目标很简单,就是求两个正整数A和B的和,其中A和B都在区间[1,1000]。稍微有点麻烦的是,输入并不保证是两个正整数。输入格式:输入在一行给出A和B,其间以空格分开。问题是A和B不一定是满足要求的正整数,有时候可能是超出范围的数字、负数、带小数点的实数、甚至是一堆乱码。注意:我们把输入中出现的第1个空格认为是A和B的分隔。题目保证至少存在一个空格,并且B不是一个空字符串。输出原创 2017-03-18 19:12:19 · 1036 阅读 · 0 评论 -
链表问题
L2-002. 链表去重给定一个带整数键值的单链表L,本题要求你编写程序,删除那些键值的绝对值有重复的结点。即对任意键值K,只有键值或其绝对值等于K的第一个结点可以被保留。同时,所有被删除的结点必须被保存在另外一个链表中。例如:另L为21→-15→-15→-7→15,则你必须输出去重后的链表21→-15→-7、以及被删除的链表-15→15。输入格式: 输入第原创 2017-03-24 20:12:56 · 309 阅读 · 0 评论