第 8 场 小白入门赛
最后一次小白赛了,之后要打强者赛咯
坤星球
思路
2024 * 2.5(小黑子题????)
代码:
#include<bits/stdc++.h>
using namespace std;
#define int long long
#define all(x) x.begin()+1,x.end()
void solve(){
cout<<2024*2.5<<endl;
return ;
}
signed main(){
int t=1;
// cin>>t;
while(t--){
solve();
}
return 0;
}
二进制王国
思路
第一眼字符串排序,wa了,后来发现需要自定义排序,我们要保证高位尽可能是0,因此我们就可以写一个自定义排序,判断字符串a+b是否小于b+a
Code
#include<bits/stdc++.h>
using namespace std;
#define int long long
#define all(x) x.begin()+1,x.end()
bool cmp(string a,string b){
string s1=a+b;
string s2=b+a;
return s1<s2;
}
void solve(){
int n;
cin>>n;
std::vector<string> a(n+1);
for(int i=1;i<=n;i++){
cin>>a[i];
}
sort(all(a),cmp);
for(int i=1;i<=n;i++){
cout<<a[i];
// return ;
}
// cout<<a[1].substr(a[2].size());
return ;
}
signed main(){
int t=1;
// cin>>t;
while(t--){
solve();
}
return 0;
}
djwcb
思路:
我是分类讨论做的,但是据说欧拉定理也可以做?总感觉杀鸡用牛刀了?
(但是我写的巨长)
Code
#include<bits/stdc++.h>
using namespace std;
#define int long long
#define all(x) x.begin()+1,x.end()
void solve(){
int x;
string p;
cin>>x>>p;
int x3=0;
for(int i=0;i<p.size();i++){
int x1=x3*10+(p[i]-'0');
int x2=x1%4;
x3=x2;
}
// cout<<x3<<endl;
int x4=0;
for(int i=0;i<p.size();i++){
int x1=x4*10+(p[i]-'0');
int x2=x1%2;
x4=x2;
}
x3-=1;
x4-=1;
if(x%10==0){
cout<<0<<endl;
return ;
}
else{
int x1=x%10;
if(x1==1){
cout<<1<<endl;
}
else if(x1==5){
cout<<5<<endl;
return ;
}
else if(x1==6){
cout<<6<<endl;
return ;
}
else if(x1==2){
if(x3==0){
cout<<2<<endl;
return ;
}
else if(x3==1){
cout<<4<<endl;
return ;
}
else if(x3==2){
cout<<8<<endl;
return ;
}
else{
cout<<6<<endl;
return ;
}
}
else if(x1==3){
if(x3==0){
cout<<3<<endl;
return ;
}
else if(x3==1){
cout<<9<<endl;
return ;
}
else if(x3==2){
cout<<7<<endl;
return ;
}
else{
cout<<1<<endl;
return ;
}
}
else if(x1==4){
if(x4==0){
cout<<4<<endl;
return ;
}
else{
cout<<6<<endl;
return ;
}
}
else if(x1==7){
if(x3==0){
cout<<7<<endl;
return ;
}
else if(x3==1){
cout<<9<<endl;
return ;
}
else if(x3==2){
cout<<3<<endl;
return ;
}
else{
cout<<1<<endl;
return ;
}
}
else if(x1==8){
if(x3==0){
cout<<8<<endl;
return ;
}
else if(x3==1){
cout<<4<<endl;
return ;
}
else if(x3==2){
cout<<2<<endl;
return ;
}
else{
cout<<6<<endl;
return ;
}
}
else if(x1==9){
if(x4==0){
cout<<9<<endl;
return ;
}
else{
cout<<1<<endl;
return ;
}
}
}
}
signed main(){
int t=1;
cin>>t;
while(t--){
solve();
}
return 0;
}
求解线性方程组
思路:
很明显,我们只要确定了x1和x2的答案,后面也就自然而然的确定了,但是需要注意的是:有可能他不是正确的答案,所以我们需要注意一下,做一个标记就可以了。
Code
#include<bits/stdc++.h>
using namespace std;
#define int long long
#define all(x) x.begin()+1,x.end()
const int N=1e6+10;
void solve(){
int n;
cin>>n;
std::vector<int> a(n+1);
for(int i=1;i<=n;i++){
cin>>a[i];
}
std::vector<int> v(n+1);
for(auto x:{0,1}){
for(auto y:{0,1}){
v[1]=x;
v[2]=y;
bool f=true;
int now=3;
for(int i=3;i<=n;i++){
int res=a[i-1]-v[i-1]-v[i-2];
if(res<0||res>=2){
f=false;
break;
}
v[i]=res;
}
if(!f){
continue;
}
if(v[n]+v[n-1]!=a[n]){
continue;
}
for(int i=1;i<=n;i++){
cout<<v[i]<<" ";
}
return ;
}
}
}
signed main(){
int t=1;
// cin>>t;
while(t--){
solve();
}
return 0;
}
标签:std,return,入门,int,long,小白,solve,define
From: https://www.cnblogs.com/du463/p/18095529