AtCoder Beginner Contest 100 题解
A
抽屉原理
#include<bits/stdc++.h>
using namespace std;
int main(){
int a,b; cin>>a>>b;
if(a<=8 && b<=8) puts("Yay!");
else puts(":(");
return 0;
}
B
特判 n==100
情况
#include<bits/stdc++.h>
using namespace std;
int pow_(int x,int p){
int res=1;
while(p--) res=res*x;
return res;
}
int main(){
int d,n; cin>>d>>n;
if(n==100) n++;
cout<<n*pow_(100,d)<<endl;
return 0;
}
C
#include<bits/stdc++.h>
using namespace std;
int main(){
int n; cin>>n;
int cnt=0;
while(n--){
int k; cin>>k;
while(!(k&1)) k>>=1, cnt++;
}
cout<<cnt<<endl;
return 0;
}
D
枚举统计贡献时候三个属性( )贡献的和是正还是负,然后对 种情况求个最大值。
#include<bits/stdc++.h>
using namespace std;
#define rep(i,a,b) for(int i=(a);i<=(b);i++)
typedef long long ll;
const int N=1005;
struct node{
ll u,v,w;
}a[N], b[N];
int f[4];
bool cmp(node x,node y){
ll kx=x.u+x.v+x.w, ky=y.u+y.v+y.w;
return kx>ky;
}
int main(){
int n,m;
cin>>n>>m;
rep(i,1,n){
ll u,v,w; cin>>u>>v>>w;
a[i]={u,v,w};
}
ll res=0;
rep(i,0,(1<<3)-1){
rep(j,0,2) f[j]=(i>>j&1)?1:-1;
rep(p,1,n) b[p]={f[0]*a[p].u, f[1]*a[p].v, f[2]*a[p].w};
sort(b+1,b+1+n,cmp);
ll rec=0;
rep(i,1,m) rec+=b[i].u+b[i].v+b[i].w;
res=max(res,rec);
}
cout<<res<<endl;
return 0;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】