ABC354
A
link
模拟整个过程即可。
点击查看代码
#include<bits/stdc++.h>
#define int long long
using namespace std;
signed main(){
int h;
cin >> h;
int day = 1ll,g = 0ll;
while(g < h){
g += (1ll<<day);
day++;
}
cout << day;
return 0;
}
B
link
名字排序后输出第
点击查看代码
#include<bits/stdc++.h>
#define int long long
using namespace std;
int n;
string s[105];
int c;
int q;
signed main(){
cin >> n;
for(int i = 1;i <= n;++ i)
cin >> s[i] >> c,q += c;
q %= n;
sort(s+1,s+1+n);
cout << s[q+1];
return 0;
}
C
link
我们把这两个数看做这个位置的两个属性。
我们把其中一个属性排序,对于每一个位置找到后面另一个属性比它小的这个位置/那个位置就可以删掉了。
这个可以倒着来,从
点击查看代码
#include<bits/stdc++.h>
using namespace std;
int n;
struct nd{
int a,c,w;
}t[200005];
bool f[200005];
int mn = 0x3f3f3f3f,cn;
bool cmp(nd x,nd y){
return x.a < y.a;
}
signed main(){
cin >> n;
for(int i = 1;i <= n;++ i)
cin >> t[i].a >> t[i].c,t[i].w = i;
sort(t+1,t+1+n,cmp);
for(int i = n;i >= 1;-- i){
if(t[i].c > mn) f[t[i].w] = 1,cn++;
mn = min(mn,t[i].c);
}
cout << n-cn << endl;
for(int i = 1;i <= n;++ i){
if(!f[i]) cout << i << " ";
}
return 0;
}
D
link
以下图红框中的为周期,算出其中每一个格子出现了几次即可。
点击查看代码
#include<bits/stdc++.h>
#define int long long
using namespace std;
int a,b,c,d;
const int mn = 1e9+4;
int p[3][5] = {{0,0,0,0,0},
{0,2,1,0,1},
{0,1,2,1,0}};
int ans;
signed main(){
cin >> a >> b >> c >> d;
for(int i = 1;i <= 2;++ i){
for(int j = 1;j <= 4;++ j){
int sx = (c-j+4+mn)/4-(a-j+4+mn)/4;
int sy = (d-i+2+mn)/2-(b-i+2+mn)/2;
ans += sx*sy*p[i][j];
}
}
cout << ans;
return 0;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!