首页 > 其他分享 >CodeVs天梯白银Silver题解

CodeVs天梯白银Silver题解

时间:2023-02-14 11:03:10浏览次数:56  
标签:return cout int 题解 tree cin now CodeVs Silver



title: CodeVs天梯之Silver
date: 2017-12-28
tags:

  • 天梯
  • CodesVs
    categories: OI

CodeVs天梯之Silver

2017.12.18 By gwj1139177410

0x01排序

  1. ​明明的随机数​
#include<iostream>
using namespace std;
int n, a[1010], t;
int main(){
cin>>n;
for(int i = 1; i <= n; i++){
int x; cin>>x;
if(!a[x]){ a[x]++; t++; }
}
cout<<t<<"\n";
for(int i = 1; i <= 1000; i++)
if(a[i])cout<<i<<" ";
return 0;
}
  1. ​排序​
#include<iostream>
#include<algorithm>
using namespace std;
int n, a[100010];
int main(){
cin>>n;
for(int i = 0; i < n; i++)cin>>a[i];
sort(a,a+n);
for(int i = 0; i < n; i++)cout<<a[i]<<" ";
return 0;
}

0x02模拟

  1. ​Cantor表​
#include<iostream>
using namespace std;
int main(){
int n, k=1; cin>>n;
//1.第n个数在第k条斜线上(前k条斜线的数的个数为等差数列)
while((1+k)*k/2 < n)k++;
int s = n-(1+k-1)*(k-1)/2;
//2.偶数从上往下
if(k%2==0)cout<<s<<"/"<<k+1-s<<"\n";
else cout<<k+1-s<<"/"<<s<<"\n";
return 0;
}
  1. ​蛇形矩阵​
#include<iostream>
using namespace std;
int a[110][110];
int main(){
int n; cin>>n;
int tot, x, y; a[x=n][y=n] = tot = n*n;
while(tot > 1){
while(y-1>=1 && !a[x][y-1])a[x][--y] = --tot;
while(x-1>=1 && !a[x-1][y])a[--x][y] = --tot;
while(y+1<=n && !a[x][y+1])a[x][++y] = --tot;
while(x+1<=n && !a[x+1][y])a[++x][y] = --tot;
}
int ans = 0;
for(int i = 1; i <= n; i++){
for(int j = 1; j <= n; j++){
cout<<a[i][j]<<" ";
if(i==j||i+j==n)ans += a[i][j];
}
cout<<"\n";
}
cout<<ans<<"\n";
return 0;
}

0x03数论入门

  1. ​最大公约数和最小公倍数问题​
#include<iostream>
using namespace std;
int gcd(int a, int b){return b==0?a:gcd(b,a%b);}
int x, y, z, ans;
int main(){
cin>>x>>y; z=x*y;
for(int i = 1; i <= z; i++)
if(z%i==0 && gcd(i,z/i)==x)
ans++;
cout<<ans<<"\n";
return 0;
}
  1. ​最大公约数​
#include<iostream>
using namespace std;
int gcd(int a, int b){
return !b ? a : gcd(b,a%b);
}
int main(){
int x, y; cin>>x>>y;
cout<<gcd(x,y)<<"\n";
return 0;
}
  1. ​素数判定​
#include<iostream>
using namespace std;
int main(){
int n; cin>>n;
for(int i = 2; i < n; i++)
if(n%i==0){cout<<"\\n"; return 0;}
cout<<"\\t";
return 0;
}

0x04进制转换

  1. ​十进制转m进制​
#include<iostream>
#include<string>
using namespace std;
string s="0123456789ABCDEF";
void dfs(int a, int b){
if(a == 0)return ;
else dfs(a/b,b);
cout<<s[a%b];
}
int main(){
int a, b;
cin>>a>>b;
dfs(a,b);
return 0;
}
  1. ​m进制转十进制​
#include<iostream>
#include<string>
using namespace std;
int main(){
string s; int m, t=1, ans=0;
cin>>s>>m;
for(int i = s.size()-1; i >= 0; i--){
if(s[i]>='A'&&s[i]<='Z')ans += (s[i]-'A'+10)*t;
else ans += (s[i]-'0')*t;
t *= m;
}
cout<<ans<<"\n";
return 0;
}

0x05递推

  1. ​数的计算​
#include<iostream>
using namespace std;
const int maxn = 1010;
int f[maxn];
int main(){
int n; cin>>n;
for(int i = 1; i <= n; i++){
f[i] = 1; //左边不加也是一种
for(int j = 0; j <= i/2; j++)f[i] += f[j];
}
cout<<f[n]<<"\n";
return 0;
}
  1. ​Fibonacci数列 3​
#include<iostream>
using namespace std;
const int maxn = 20;
int f[maxn];
int main(){
int n; cin>>n;
f[1] = f[0] = 1;
for(int i = 3; i <= n; i++)
f[i%2]=f[(i-1)%2]+f[(i-2)%2];
cout<<f[n%2];
return 0;
}

0x06递归

  1. ​二叉树最大宽度和高度​
#include<iostream>
#include<algorithm>
using namespace std;
const int maxn = 110;
int tree[maxn][2], higt, weigt[maxn], ww;//宽度是每一层的
void dfs(int now, int dep){
higt = max(higt,dep);
ww = max(ww, weigt[dep]);
if(tree[now][0]){ dfs(tree[now][0], dep+1); weigt[dep+1]++; }
if(tree[now][1]){ dfs(tree[now][1], dep+1); weigt[dep+1]++; }
}
int main(){
int n; cin>>n;
for(int i = 1; i <= n; i++)
cin>>tree[i][0]>>tree[i][1];
dfs(1, 1);
cout<<ww+1<<" "<<higt<<"\n";
return 0;
}
  1. ​递归第一次​
#include<iostream>
using namespace std;
int f(int x){
return x>=0 ? 5 : f(x+1)+f(x+2)+1;
}
int main(){
int n; cin>>n;
cout<<f(n)<<"\n";
return 0;
}
  1. ​3n+1问题​
//-1什么不存在的。
#include<iostream>
using namespace std;
int main(){
int T; cin>>T;
while(T--){
int n, s=0; cin>>n;
while(n != 1){
if(n%2==1)n = 3*n+1;
else n = n/2;
s++;
}
cout<<s<<"\n";
}
return 0;
}
  1. ​二叉树的序遍历​
#include<iostream>
using namespace std;
const int maxn = 110;
int tree[maxn][2];
void dfs1(int now){
cout<<now<<" ";
if(tree[now][0])dfs1(tree[now][0]);
if(tree[now][1])dfs1(tree[now][1]);
}
void dfs2(int now){
if(tree[now][0])dfs2(tree[now][0]);
cout<<now<<" ";
if(tree[now][1])dfs2(tree[now][1]);
}
void dfs3(int now){
if(tree[now][0])dfs3(tree[now][0]);
if(tree[now][1])dfs3(tree[now][1]);
cout<<now<<" ";
}
int main(){
int n; cin>>n;
for(int i = 1; i <= n; i++)
cin>>tree[i][0]>>tree[i][1];
dfs1(1); cout<<"\n";
dfs2(1); cout<<"\n";
dfs3(1); cout<<"\n";
return 0;
}
  1. ​汉诺塔游戏​
//把大象装进冰箱一共需要几步。。。
#include<iostream>
using namespace std;
int n, ans = 0, t;
void f(int a, char b, char c){
ans++;
if(a == 1){
if(t)cout<<a<<" from "<<b<<" to "<<c<<"\n";
return ;
}
f(a-1,b,198-b-c);//1.打开冰箱门
if(t)cout<<a<<" from "<<b<<" to "<<c<<"\n";//2.把大象装进去
f(a-1,198-b-c,c);//关上冰箱门
}
int main(){
cin>>n;
f(n,'A','C');
cout<<ans<<"\n";
t = 1;
f(n,'A','C');
return 0;
}


标签:return,cout,int,题解,tree,cin,now,CodeVs,Silver
From: https://blog.51cto.com/gwj1314/6056166

相关文章

  • CodeVs天梯青铜Bronze题解
    CodeVs天梯之Bronze2017.12.18Bygwj11391774100x01整数处理​​最小数和最大数​​#include<iostream>#include<algorithm>usingnamespacestd;intmain(){intn;c......
  • CF446C DZY Loves Fibonacci Numbers 题解和加强
    简要题意https://www.luogu.com.cn/problem/CF446C给定一个长度为\(n\)的序列\(A\),要求支持两种操作:1给定区间\((l,r)\)对这个区间内的每个数,依次加斐波那契数列......
  • str 学数学 题解
    Example1(str学数学)str同学因为名字里含有一个str,所以觉得字符串对于他来说太简单了,于是他开始了他的数学之旅。在旅途中str遇到了刚抽到胡桃的lyl,而lyl同学正......
  • clion 2022 win10上编译的程序不可运行---问题解决
    会报错,0xc000007b网上说,可能是dll库丢失等问题,我试了无效我的修复过程如下编译的时候,默认是使用ninja,将buildtool改成make即可 ......
  • CF1567E Non-Decreasing Dilemma 题解 线段树
    题目链接:http://codeforces.com/problemset/problem/1567/E题目大意:有一个长度为\(n\)的数列\(a\),你需要对其进行\(q\)次操作,操作有两种类型,按如下格式给出:1xy:......
  • Ubuntu cmake 安装以及问题解决(muduo库编译)
    1、安装cmakesudoapt-getinstallcmake 2、安装之后查看是否安装成功:cmake--version3、出现 NoCMAKE_C_COMPILERcouldbefound.如何解决使用cmake命令时发......
  • [ABC289D] Step Up Robot 题解
    Problem有一机器人初始在\(0\)级阶梯,对于每一级阶梯,机器人可以从\(1\simN\)种任选一个\(i\)走\(A_i\)步,同时有\(M\)个障碍在\(B_i\)级阶梯,若走到障碍则将无......
  • P2430 严酷的训练 题解
    题目背景Lj的朋友WKY是一名神奇的少年,在同龄人之中有着极高的地位。。。题目描述他的老师老王对他的程序水平赞叹不已,于是下决心培养这名小子。老王的训练方式很奇怪,他......
  • 前端导出pdf字体表格被截断问题解决
    最近有个导出pdf的需求,写好之后分页出现字体,表格被截断的问题,影响美观,需要解决。  经过多方查找,发现一个比较好的思路,设置背景色为白色,然后转成图片后,获取截断处图片......
  • ABC283E 题解
    前言题目传送门!更好的阅读体验?很简单的一道题,强行在英语课的时候想到做法。存储方式与其他题解稍有不同。本题解着重讲是怎么想到这个做法的。思路首先考虑暴力。用......