摘要: 初始化: n个下表对应n个集合,根节点的特征是父节点就是其本身。 for(int i = 1; i ⇐ n; i++) p[i] = i; M操作:如果两个元素在同一个集合中,什么也不做,否则将两个集合合并; Q操作:两个集合在同一个集合回复“Yes”,否则回复“No”; 核心思想:(1)两个集合合 阅读全文
posted @ 2022-04-28 10:08 珍惜时光,辉煌拔尖 阅读(31) 评论(0) 推荐(0) 编辑
摘要: 1094 谷歌的招聘 (20分) 本题要求你编程解决一个更通用的问题:从任一给定的长度为 L 的数字中,找出最早出现的 K 位连续数字所组成的素数。 输入格式: 输入在第一行给出 2 个正整数,分别是 L(不超过 1000 的正整数,为数字长度)和 K(小于 10 的正整数)。接下来一行给出一个长度 阅读全文
posted @ 2020-11-18 20:42 珍惜时光,辉煌拔尖 阅读(608) 评论(0) 推荐(0) 编辑
摘要: #include #include #include using namespace std; const int maxn = 100; struct node{ int x,y; int step; }S,T,Node; int n,m;//n为行,m为列 char maze[maxn][max 阅读全文
posted @ 2020-10-13 13:58 珍惜时光,辉煌拔尖 阅读(86) 评论(0) 推荐(0) 编辑
摘要: /*void BFS(int s){ queue q; q.push(s); while(!q.empty()){ //取出队首元素top; //访问队首元素top; //将队首元素出队 //将top的下一层结点中未曾入队的结点全部入队,并设置为已入队; } } 步骤: (1) 定义队列q,并将起点 阅读全文
posted @ 2020-10-12 21:03 珍惜时光,辉煌拔尖 阅读(32) 评论(0) 推荐(0) 编辑
摘要: 题目描述 一个如下的 6 \times 66×6 的跳棋棋盘,有六个棋子被放置在棋盘上,使得每行、每列有且只有一个,每条对角线(包括两条主对角线的所有平行线)上至多有一个棋子。 上面的布局可以用序列 2\ 4\ 6\ 1\ 3\ 52 4 6 1 3 5 来描述,第 ii 个数字表示在第 ii 行的 阅读全文
posted @ 2020-10-12 11:45 珍惜时光,辉煌拔尖 阅读(80) 评论(0) 推荐(0) 编辑
摘要: 去年,搞竞赛的同学给我看了这题,觉得挺有意思的,但是根本不知道分治是啥,所以作罢。不久前在写组合数问题P2822时,尽管我用了题解里的递推公式,但还是WA。于是我想把杨辉三角对2取模输出看下结果,这是12行内的结果: 1 1 1 1 0 1 1 1 1 1 1 0 0 0 1 1 1 0 0 1 1 阅读全文
posted @ 2020-10-10 21:30 珍惜时光,辉煌拔尖 阅读(194) 评论(0) 推荐(0) 编辑
摘要: /* 建立数组f。f[i]表示i个数的全部可能性。f[0]=1,f[1]=1; 设x为当前出栈序列的最后一个,则x有n种取值 由于x是最后一个出栈的,所以可以将已经出栈的数分成两部分 1.比x小 2.比x大 比x小的数有x-1个,所以这些数全部出栈可能为f[x-1] 解释:因为进栈顺序从小到大排列, 阅读全文
posted @ 2020-10-07 20:41 珍惜时光,辉煌拔尖 阅读(47) 评论(0) 推荐(0) 编辑
摘要: #include<bits/stdc++.h> using namespace std; char s[110][110];//地图 int n,m,sum;//n行,m列 int dir[4][2] = {{1,0},{0,1},{-1,0},{0,-1}};//右、上、左、下 int vis[1 阅读全文
posted @ 2020-10-02 22:13 珍惜时光,辉煌拔尖 阅读(43) 评论(0) 推荐(0) 编辑
摘要: #include #include using namespace std; int main() { char s[10]; gets(s); int n=strlen(s); int ans=0; for(int i=0;i<n;i++) { if(s[i]>='A'&&s[i]<='Z') a 阅读全文
posted @ 2020-09-25 14:45 珍惜时光,辉煌拔尖 阅读(110) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2020-09-25 09:27 珍惜时光,辉煌拔尖 阅读(0) 评论(0) 推荐(0) 编辑