算法杂题
杂题
Asterisk-.-
这个作者很懒,什么都没留下…
展开
-
A1004 Counting Leaves (30 分)
#include<cstdio>#include<vector>using namespace std;const int maxn = 110;int n, m, k;vector<int> v[maxn];int level[maxn] = { 0 };int maxdepth = -1;void dfs(int root,int depth...原创 2019-01-25 20:48:45 · 123 阅读 · 0 评论 -
A1043 Is It a Binary Search Tree (25 分)
#include<cstdio>#include<vector>using namespace std;int n;vector<int> origin, pre, mpre, post,mpost;struct node{ int data; node *left, *right;};void insert(node* &root,...原创 2019-01-26 22:29:31 · 99 阅读 · 0 评论 -
1013 Battle Over Cities (25 分)图的dfs
无向图的dfs遍历问题,把求所需要的边数转换成了连通块个数#include<cstdio>#include<cstring>#include<vector>using namespace std;const int N = 1010;vector<int> G[N];int vis[N];int n, m, k,query;void...原创 2019-01-28 01:04:36 · 111 阅读 · 0 评论 -
A1066 Root of AVL Tree (25 分)平衡二叉树
#include<cstdio>#include<algorithm>using namespace std;struct node{ int v, height; node *lchild, *rchild;};node* newNode(int v){ node* Node = new node; Node->v = v; Node->...原创 2019-01-27 02:25:19 · 130 阅读 · 0 评论 -
A1099 Build A Binary Search Tree (30 分)
#include<cstdio>#include<algorithm>#include<queue>using namespace std;const int maxn = 110;struct Node{ //int data; int left, right;}node[maxn];int n,level[maxn],origin[max...原创 2019-01-27 00:40:34 · 107 阅读 · 0 评论 -
A1090 Highest Price in Supply Chain (25 分)dfs
#include<cstdio>#include<cmath>#include<algorithm>#include<vector>using namespace std;const int maxn = 100010;vector<int> child[maxn];int n;double P, R;int maxde...原创 2019-01-24 23:48:47 · 152 阅读 · 0 评论 -
A1102 Invert a Binary Tree (25 分)二叉树的静态写法
#include<cstdio>#include<algorithm>#include<queue>using namespace std;bool notroot[15] = { false };struct Node{ int lchild, rchild;}node[15];int n,num=0;void print(int a){...原创 2019-01-24 17:13:58 · 125 阅读 · 0 评论 -
1003 Emergency (25 分)dijkstra算法
#include<cstdio>#include<algorithm>#include<cstring>using namespace std;const int maxn = 510;const int INF = 1e9;int n, m, c1, c2;int G[maxn][maxn];//边权int weight[maxn];//点权...原创 2019-01-30 00:31:58 · 165 阅读 · 0 评论 -
A1053 Path of Equal Weight (30 分)
开始犯蠢想用set实现从小到大,写到一般才发现输出的是权值从大到小。#include<cstdio>#include<vector>#include<algorithm>using namespace std;const int maxn = 110;int n, m, s;int path[maxn];//定义一个int型的path,实际是一个...原创 2019-01-26 00:44:11 · 168 阅读 · 0 评论 -
A1064 Complete Binary Search Tree (30 分)满二叉树
满二叉树root编号为1时候,对结点n,左子树编号为2n,右子树编号为2n+1。输入元素从小到大排列,再按照中序给二叉排序树赋值,即可得到完全二叉排序树。#include<cstdio>#include<algorithm>using namespace std;const int maxn = 1010;int cbt[maxn], number[maxn];...原创 2019-01-26 23:09:22 · 120 阅读 · 0 评论 -
A1018 Public Bike Management (30 分)
#include<cstdio>#include<algorithm>#include<cstring>#include<vector>using namespace std;const int maxn = 510;const int INF = 1e9;int cmax, n, sp, m;int num[maxn] = { 0 ...原创 2019-01-30 21:04:45 · 314 阅读 · 0 评论 -
A1106 Lowest Price in Supply Chain (25 分)
#include<cstdio>#include<vector>#include<cmath>using namespace std;int n;double p, r;const int maxn = 100010;vector<int> v[maxn];int mindepth=maxn;int num;void dfs(in...原创 2019-01-25 19:24:03 · 204 阅读 · 0 评论 -
A1076 Forwards on Weibo (30 分)
自己的解法:(感觉做得很乱,改了很长时间,一直因为层数的设定出错)#include<cstdio>#include<cstring>#include<queue>#include<vector>using namespace std;const int maxn = 1010;struct Node{ vector<int&g...原创 2019-01-29 19:55:15 · 149 阅读 · 0 评论 -
A1079 Total Sales of Supply Chain (25 分)
#include<cstdio>#include<cmath>#include<vector>using namespace std;const int maxn = 100010;bool isroot[maxn] = { false };struct Node{ int data; vector<int> v;}node[ma...原创 2019-01-25 10:27:30 · 186 阅读 · 0 评论 -
A1021 Deepest Root (25 分)
#include<cstdio>#include<vector>#include<set>#include<algorithm>#include<cstring>using namespace std;const int maxn = 10010;int n;bool isroot[maxn] = { false };i...原创 2019-01-28 16:45:37 · 119 阅读 · 0 评论 -
1107 Social Clusters (30 分)并查集
#include<cstdio>#include<algorithm>using namespace std;const int maxn=1010;int father[maxn];int isroot[maxn];int course[maxn] = { 0 };int findfather(int x){ int a = x; while (x !...原创 2019-01-27 17:45:28 · 178 阅读 · 0 评论 -
A1030 Travel Plan (30 分)
#include<cstdio>#include<algorithm>#include<cstring>using namespace std;const int maxn = 510;const int INF = 1e9;int n, m, s, d;int G[maxn][maxn];int cost[maxn][maxn];int pr...原创 2019-01-30 17:49:04 · 189 阅读 · 0 评论 -
A1034 Head of a Gang (30 分)
#include<iostream>#include<map>#include<string>using namespace std;const int maxn = 2010;map<int, string> numtostr;map<string, int> strtonum;map<string, int>...原创 2019-01-29 01:15:03 · 106 阅读 · 0 评论 -
A1094 The Largest Generation (25 分)
#include<cstdio>#include<vector>#include<algorithm>using namespace std;const int maxn = 110;vector<int> node[maxn];int n, m;int id, k, temp;int level[maxn] = { 0 };int...原创 2019-01-25 16:38:59 · 132 阅读 · 0 评论 -
A1098 Insertion or Heap Sort (25 分)堆排序
#include<cstdio>#include<algorithm>using namespace std;const int maxn=110;int n;int origin[maxn], temp[maxn], changed[maxn];bool issame(int a[], int b[]){ for (int i = 0; i < n;...原创 2019-01-27 22:36:53 · 177 阅读 · 0 评论 -
A1126 Eulerian Path (25 分)
#include<cstdio>#include<algorithm>using namespace std;const int maxn = 510;int n, m, a, b;int degree[maxn] = { 0 };int G[maxn][maxn];bool vis[maxn] = { 0 };int sum = 0;void dfs(i...原创 2019-02-13 10:10:29 · 165 阅读 · 0 评论 -
A1120 Friend Numbers (20 分)
#include<cstdio>#include<set>using namespace std;int n,temp;set<int> s;int change(int x){ int result = 0; while (x != 0) { result += x % 10; x /= 10; } return result;...原创 2019-02-11 21:57:06 · 198 阅读 · 0 评论 -
1125 Chain the Ropes (25 分)
#include<cstdio>#include<algorithm>using namespace std;const int maxn = 10010;double a[maxn];int main(){ int n; double result; scanf("%d", &n); for (int i = 0; i < n; i++)...原创 2019-02-13 00:42:42 · 177 阅读 · 0 评论 -
A1118 Birds in Forest (25 分)并查集
#include<cstdio>const int maxn = 10010;int n;int father[maxn];void init(){for (int i = 0; i < maxn; i++) father[i] = i;}int findfather(int x){ int a = x; while (x != father[x]) { x = ...原创 2019-02-11 00:25:31 · 154 阅读 · 0 评论 -
A1128 N Queens Puzzle (20 分)
#include <cstdio>#include <iostream>#include <vector>#include<cmath>using namespace std;bool isvalid(vector<int> v){ for (int i = 0; i < v.size(); i++) { f...转载 2019-02-13 22:10:12 · 183 阅读 · 0 评论 -
A1122 Hamiltonian Cycle (25 分)
#include<cstdio>#include<algorithm>using namespace std;const int maxn = 210;int G[maxn][maxn];int vis[maxn],q[maxn];int main(){ fill(G[0], G[0] + maxn * maxn, 0); int n, m; scanf...原创 2019-02-11 23:03:13 · 225 阅读 · 0 评论 -
从尾到头打印链表
class Solution {public: vector<int> printListFromTailToHead(ListNode* head) { ListNode* p=head; vector<int> arraylist; while(p!=NULL){ arraylist.pus...原创 2019-04-08 18:16:20 · 183 阅读 · 0 评论 -
剑指 Offer 03. 数组中重复的数字
class Solution {//空间为O(1)的原地置换public: int findRepeatNumber(vector<int>& nums) { for(int i=0;i<nums.size();++i){ while(i!=nums[i]){ if(nums[i]==nums[nums[i]]) return nums[i]; int tmp=num原创 2021-03-18 15:32:25 · 125 阅读 · 0 评论 -
替换空格
class Solution {public: void replaceSpace(char *str,int length) { int i=0; while(str[i]!='\0'){ if(str[i]==' '){ for(int j=length-1;j>i;j--){ ...原创 2019-04-08 17:49:03 · 197 阅读 · 0 评论 -
A1121 Damn Single (25 分)
#include<cstdio>#include<set>#include<algorithm>using namespace std;int n,m;const int maxn = 100010;int ans[maxn];int notsingle[maxn] = { 0 };int hashtable[maxn] = { 0 };set...原创 2019-02-11 22:21:48 · 161 阅读 · 0 评论 -
A1119 Pre- and Post-order Traversals (30 分)前序和后序确定树
#include<cstdio>#include<iostream>#include<vector>using namespace std;vector<int> pre, post, in;bool unique = 1;void inorder(int preleft, int preright, int postleft, int ...原创 2019-02-11 21:43:15 · 241 阅读 · 0 评论 -
A1117 Eddington Number (25 分)
#include&lt;cstdio&gt;const int maxn = 1e5 + 10;int a[maxn];int main(){ int n; scanf("%d", &amp;n); for (int i = 0; i &lt; n; i++) scanf("%d", &amp;a[i]); int E; for (int原创 2019-02-10 18:23:23 · 255 阅读 · 0 评论 -
二维数组中的查找
class Solution {public: bool Find(int target, vector<vector<int> > array) { int row=array.size(); int col=array[0].size(); for(int i=0;i<row;i++) {...原创 2019-04-08 17:28:47 · 149 阅读 · 0 评论 -
A1127 ZigZagging on a Tree (30 分)
#include<cstdio>#include<queue>#include<vector>using namespace std;const int maxn = 35;vector<int> level[maxn];int in[maxn], post[maxn];struct node{ int data,level; n...原创 2019-02-13 13:55:44 · 259 阅读 · 0 评论 -
A1123 Is It a Complete AVL Tree (30 分)
#include<cstdio>#include<algorithm>#include<queue>using namespace std;int n;struct node{ int v, height; node *lchild, *rchild;};node* newNode(int v){ node* Node = new nod...原创 2019-02-12 15:37:20 · 163 阅读 · 0 评论 -
B1011 A+B 和 C (15 分)
#include<cstdio>int main() { int t,turn=0; scanf("%d", &t); while (t--) { long long a, b, c; turn++; scanf("%lld%lld%lld", &a, &b, &c); if (a + b > c) printf("Case...原创 2019-04-09 18:10:07 · 201 阅读 · 0 评论 -
B1001 害死人不偿命的(3n+1)猜想 (15 分)
#include<cstdio>int main() { int step = 0; int n; scanf("%d", &n); while (n != 1) { if (n % 2 == 0) { step++; n /= 2; continue; } else { step++; n = (3*n + 1) / 2;...原创 2019-04-09 17:58:20 · 199 阅读 · 0 评论 -
A1124 Raffle for Weibo Followers (20 分)
#include&lt;cstdio&gt;#include&lt;set&gt;#include&lt;string&gt;using namespace std;set&lt;string&gt; sq;int main(){ int m, n, s; char str[25]; scanf("%d %d %d", &原创 2019-02-13 00:19:44 · 190 阅读 · 0 评论