机试
如题
Catmull
M.S. Candidate @ CASIA
展开
-
Ch11 图论
例题11.1 畅通工程(ZJU) #include<bits/stdc++.h> using namespace std; const int maxn=1010; int par[maxn],rnk[maxn]; void init(int n){ for(int i=1;i<=n;i++){ par[i]=i; rnk[i]=1; } } int find(int x){ return par[x]==x?x:par[x]=find(par[x]); } bool uni原创 2021-06-11 09:33:40 · 61 阅读 · 0 评论 -
Ch10 数据结构二
例题10.1 二叉树遍历(THU) #include<bits/stdc++.h> using namespace std; struct TreeNode{ char data; TreeNode* leftChild; TreeNode* rightChild; TreeNode(char c):data(c),leftChild(NULL),rightChild(NULL){ } }; TreeNode* Build(int& pos,string str){ char原创 2021-04-30 17:06:23 · 157 阅读 · 1 评论 -
CH09 搜索
例题9.1 Catch That Cow #include<iostream> #include<cstring> #include<queue> using namespace std; const int MAXN=100001; struct Status{ int n,t; }; bool visit[MAXN]; int bfs(int n,int k){ queue<Status> q; q.push({n,0}); visit[n]=t原创 2021-04-21 21:50:56 · 52 阅读 · 0 评论 -
CH08 递归与分治
例题8.2 汉诺塔III(HDU2064) #include<bits/stdc++.h> using namespace std; long long Function(int n){ if(n==1){ return 2; } return 3*Function(n-1)+2; } int n; int main(){ while(cin>>n){ cout<<Function(n)<<endl; } }原创 2021-04-18 10:13:06 · 57 阅读 · 0 评论 -
Ch07 贪心策略
例题7.1 鸡兔同笼(PKU) #include<bits/stdc++.h> using namespace std; int a; int main(){ while(cin>>a){ if(a%2!=0||a<=1){ cout<<"0 0"<<endl; } else{ cout<<a/4+a%4/2<<" "<<a/2<<endl; } } } ...原创 2021-04-14 15:39:22 · 120 阅读 · 0 评论 -
Ch06 数学问题
例题6.1 二进制数(BUPT) #include<bits/stdc++.h> using namespace std; int n; int main(){ while(cin>>n){ vector<int> v; while(n){ v.push_back(n%2); n/=2; } for(int i=v.size()-1;i>=0;i--){ cout<<v[i]; } cout<<en原创 2021-04-01 20:59:25 · 193 阅读 · 0 评论 -
Ch05 数据结构一
例题5.2 约瑟夫问题NO.2(OpenJudge 3254) #include<bits/stdc++.h> using namespace std; vector<int>v; int n,p,m; int main(){ while(cin>>n>>p>>m){ if(n==0&&p==0&&m==0){ break; } v.clear(); for(int i=1;i<=n;i原创 2021-03-28 11:53:48 · 66 阅读 · 0 评论 -
Ch04 字符串
例题4.1 特殊乘法(THU) #include<bits/stdc++.h> using namespace std; string s1,s2; int main(){ while(cin>>s1>>s2){ long long ans=0; for(int i=0;i<s1.size();i++){ for(int j=0;j<s2.size();j++){ ans+=(s1[i]-'0')*(s2[j]-'0'); }原创 2021-03-21 15:02:32 · 70 阅读 · 0 评论 -
Ch03 排序与查找
习题3.1 #include<bits/stdc++.h> using namespace std; int n,a; vector<int> arr; int main(){ while(cin>>n){ arr.clear(); for(int i=0;i<n;i++){ cin>>a; arr.push_back(a); } sort(arr.begin(),arr.end()); cout<<ar原创 2021-03-16 23:20:07 · 87 阅读 · 0 评论 -
Ch02 暴力求解
习题2.1 与7无关的数(PKU) #include<bits/stdc++.h> using namespace std; int n,ans; bool check(int x){ if(x%7==0) return false; while(x!=0){ if(x%10==7){ return false; } x/=10; } return true; } int main(){ cin>>n; for(int i=1;i<=n;i++)原创 2021-03-07 21:01:19 · 347 阅读 · 0 评论