CF-928(已更新:B C D E)
1.CF-925(已更新:D-F)2.2024牛客寒假算法基础集训营33.CF-926(已更新:B-C)4.CF-927(已更新:B C E)
5.CF-928(已更新:B C D E)
6.2024牛客寒假算法集训营4 (已更新:B-E)7.CF EDU-162 (已更新:A-C+D的代码)8.At-abc3429.蒟蒻的补档题(长期更新)10.CF-929(已更新:B-E)11.CF-931(已更新:AB代码)12.PowerOj 2024-康复赛 (待更新)13.CF-932(已更新 A B)14.矩阵快速幂15.CF-933(已更新:B-D)16.数论分块17.CF-Edu-163(已更新:A B)18.CF-936(AB)19.AT-abc347(C-E)20.CF-938(C-E)21.CF-943(已更B-E,G1)22.CF-945(已更A,B)23.CF-956(A-D)24.CF-957(D-E)25.CF-959(C-E)26.Codeforces Round 967 (Div. 2)-D27.AtCoder Beginner Contest 396 (E-F)28.Codeforces Round 1008 (Div. 2) (C-D)CF-928
排名四千多,目前为止排名最高的一场~
E题我赛时基本上是猜的结论(但是也推了快一小时才想到有这个可能性),因此目前只能放个码在这(⊙﹏⊙)
D的话现就放个码在这0-^-0
……上一场牛客打得特别烂(⊙﹏⊙),等我补了牛客的再更新-^-
B
分析
观察它的性质,答案为正方形时,所有出现1的行里,1的左右边界一定相等,且这个边界等于出现1的上下边界
操作
用l[]与r[]数组以出现1的行数为下标记录它的左右边界,同时用b与e记录出现1的上下边界,这些行里所有边界一定相等,因此之后再遍历b~e,若满足所有l等于r同时r-l等于e-b,则输出"SQUARE",否则输出"TRIANGLE"
其中左右上下边界的记录是难点,我这里用的是标记,使得左边界只更新一次,右边界一直更新
代码
#include <bits/stdc++.h>
using namespace std;
#define endl '\n'
#define int long long
#define db(x) cout<<x<<" "<<endl;
#define _db(a,n) for(int i=1;i<=n;i++) cout<<a[i]<<" ";cout<<endl;
#define mem(a) memset(a,0, sizeof(a))
#define rep(i,l,r) for(int i=l;i<=r;i++)
#define per(i,r,l) for(int i=r;i>=l;i--)
signed main()
{
std::ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
int t,n,x,cnt=0,ans=0;cin>>t;
while(t--){
cin>>n;
char a[11][11];
char op;int l[11],r[11];
int b,e,fff=0;
for(int i=1;i<=n;i++){
int f=0;
for(int j=1;j<=n;j++){
cin>>op;//a[i][j];
if(op=='1'){
r[i]=j;//只要出现1就更新右边界
if(f==0){
l[i]=j;//如果1在此行第一次出现,记录左边界
f=1;
}
}
}
//同理记录与更新上下边界
if(f){
e=i;
if(fff==0){
b=i;
fff=1;
}
}
}
int ff=1;
for(int i=b+1;i<=e;i++){
if(l[i]==l[i-1]&&r[i]==r[i-1]&&r[i]-l[i]==e-b) continue;
ff=0;
}
if(ff) cout<<"SQUARE";
else cout<<"TRIANGLE";
cout<<endl;
}
return 0;
}
C
分析
即求1~n的数位之和,同时要注意时间限制是0.5s,意味着我们需要将答案预处理
操作
我们可以遍历1~2e5,用tmp记录i的数位和,再用a数组记录数位和的前缀和,这样在查询时直接输出a[n]就行
代码
#include <bits/stdc++.h>
using namespace std;
#define endl '\n'
#define int long long
#define db(x) cout<<x<<" "<<endl;
#define _db(a,n) for(int i=1;i<=n;i++) cout<<a[i]<<" ";cout<<endl;
#define mem(a) memset(a,0, sizeof(a))
#define rep(i,l,r) for(int i=l;i<=r;i++)
#define per(i,r,l) for(int i=r;i>=l;i--)
const int N=2e5+5;
int a[N];
signed main()
{
std::ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
int t,n,x,cnt=0,ans=0;cin>>t;
string s;
//预处理
rep(i,1,2e5){
int res=0,tp=i;
while(tp){
res+=tp%10;
tp/=10;
}
a[i]=res+a[i-1];
}
while(t--){
cin>>n;
int sum=a[n];
cout<<sum<<endl;
}
return 0;
}
D
代码
#include <bits/stdc++.h>
using namespace std;
#define endl '\n'
#define int long long
#define db(x) cout<<x<<" "<<endl;
#define _db(a,n) for(int i=1;i<=n;i++) cout<<a[i]<<" ";cout<<endl;
#define mem(a) memset(a,0, sizeof(a))
#define rep(i,l,r) for(int i=l;i<=r;i++)
#define per(i,r,l) for(int i=r;i>=l;i--)
const int N=2e5+5;
int a[N];
signed main()
{
std::ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
int t,n,x,cnt=0,ans=0;cin>>t;
while(t--){
cin>>n;
map<int,int>mp;
int c=2147483647;
rep(i,1,n){
cin>>a[i];
mp[a[i]]++;
}
ans=0;
rep(i,1,n){
if(mp[a[i]^c]&&mp[a[i]]){//计数配对数
//cout<<a[i]<<" "<<(a[i]^c)<<endl;
ans++;
mp[a[i]]--;
mp[a[i]^c]--;
}
}
//计数未配对的
for(auto it:mp){
ans+=it.second;
}
cout<<ans<<endl;
}
return 0;
}
E
代码
赛时是边写边想,所以最后的注释代码巨长……这里是删了之后的
#include <bits/stdc++.h>
using namespace std;
#define endl '\n'
#define int long long
#define db(x) cout<<x<<" "<<endl;
#define _db(a,n) for(int i=1;i<=n;i++) cout<<a[i]<<" ";cout<<endl;
#define mem(a) memset(a,0, sizeof(a))
#define rep(i,l,r) for(int i=l;i<=r;i++)
#define per(i,r,l) for(int i=r;i>=l;i--)
int fp(int b,int p){
int res=1;
while(p){
if(p&1) res=res*b;
b=b*b;
p>>=1;
}
return res;
}
signed main()
{
std::ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
int t,n,x,cnt=0,ans=0;cin>>t;
int k;
while(t--){
cin>>n>>k;
int o,e;
if(n&1){
o=n/2+1;
e=n-o;
}
else{
o=e=n/2;
}
if(k<=o){
cout<<k*2-1<<endl;
continue;
}
k-=o;
//这里就是公式部分了
for(int i=1;i<=32;i++){
int tp=(n/fp(2,i)+1)/2;
if(k<=tp){
cout<<(k*2-1)*fp(2,i)<<endl;
break;
}
k-=tp;
}
}
return 0;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】