2024牛客寒假算法基础集训营3
1.CF-925(已更新:D-F)
2.2024牛客寒假算法基础集训营3
3.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)M题
错解
幂运算写成了乘~
#include <bits/stdc++.h>
using namespace std;
#define endl '\n'
#define int long long
#define debug(x) cout<<x<<" "<<endl;
#define _debug(a,n) for(int i=0;i<n;i++) cout<<a[i]<<" ";cout<<endl;
#define mem(a) memset(a,0, sizeof(a))
struct node{
int v,i;
}p[100005];
vector<pair<int,int>>v[100005];
const int mod=36;
signed main()
{
std::ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
int t,n,x,y,z,f=1;cin>>n;
map<pair<int,int>,int>mp;
for(int h=0;h<=35;h++){
for(int i=0;i<=35;i++){
//if(h==i&&h!=0) continue;
for(int j=0;j<=18;j++){
//if(h==0&&i==0) cout<<(h*(j*10)%mod)%mod+i<<endl;
if(((h*(j*10)%mod)%mod+i)%mod==0) v[h].push_back({i,j});
}
}
}
// cout<<v[0].size()<<endl;
// for(auto it:v[0]){
// cout<<it.first<<" "<<it.second<<endl;
// }
for(int i=1;i<=n;i++){
cin>>p[i].v;
int tp=p[i].v,cnt=0;
while(tp){
tp/=10;
cnt++;
}
p[i].v%=mod;
p[i].i=cnt;
//cout<<p[i].v<<p[i].i<<endl;
mp[{p[i].v,p[i].i}]++;
//cout<<cnt<<endl;
}
int ans=0;
pair<int,int>now;
for(int i=1;i<=n;i++){
now={p[i].v,p[i].i};
for(auto it:v[p[i].v]){
if(mp.count(it)){
//cout<<it.first<<" "<<it.second<<endl;
//mp[now]--;
ans+=mp[it];
if(now==it) ans--;
//mp[now]++;
//if(it.first==now.v&&it.second==now.i) ans--;
}
}
}
cout<<ans;
return 0;
}
正解
- 看题解优化前的代码—_—
#include <bits/stdc++.h>
using namespace std;
#define endl '\n'
#define int long long
#define debug(x) cout<<x<<" "<<endl;
#define _debug(a,n) for(int i=0;i<n;i++) cout<<a[i]<<" ";cout<<endl;
#define mem(a) memset(a,0, sizeof(a))
struct node{
int v,i;
}p[100005];
vector<pair<int,int>>v[100005];
const int mod=36;
int fp(int b,int p){
int res=1;
while(p){
if(p&1) res=res*b%mod;
b=b*b%mod;
p>>=1;
}
return res;
}
signed main()
{
std::ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
int t,n,x,y,z,f=1;cin>>n;
map<pair<int,int>,int>mp;
for(int h=0;h<=35;h++){
for(int i=0;i<=35;i++){
//if(h==i&&h!=0) continue;
for(int j=0;j<=18;j++){
//if(h==0&&i==0) cout<<(h*(j*10)%mod)%mod+i<<endl;
if((h*(fp(10,j))%mod+i)%mod==0) v[h].push_back({i,j});
}
}
}
// cout<<v[3].size()<<endl;
// for(auto it:v[3]){
// cout<<it.first<<" "<<it.second<<endl;
// }
for(int i=1;i<=n;i++){
cin>>p[i].v;
int tp=p[i].v,cnt=0;
while(tp){
tp/=10;
cnt++;
}
p[i].v%=mod;
p[i].i=cnt;
//cout<<p[i].v<<p[i].i<<endl;
mp[{p[i].v,p[i].i}]++;
//cout<<cnt<<endl;
}
int ans=0;
pair<int,int>now;
for(int i=1;i<=n;i++){
now={p[i].v,p[i].i};
for(auto it:v[p[i].v]){
if(mp.count(it)){
//cout<<it.first<<" "<<it.second<<endl;
//mp[now]--;
ans+=mp[it];
if(now==it) ans--;
//mp[now]++;
//if(it.first==now.v&&it.second==now.i) ans--;
}
}
}
cout<<ans;
return 0;
}
- 优化后的代码—^—
#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))
const int N=1e5+5,mod=36;
pair<int,int>p[N];
map<pair<int,int>,int>mp;
vector<pair<int,int>>v[N];
signed main()
{
std::ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
int t,n,x,cnt=0,ans=0;cin>>n;
for(int i=0;i<=35;i++){
for(int j=0;j<=35;j++){
if(((i*28)%mod+j)%mod==0) v[i].push_back({j,2});
if(((i*10)%mod+j)%mod==0) v[i].push_back({j,1});
}
}
for(int i=1;i<=n;i++){
cin>>x;
if(x>=10) p[i]={x%36,2};
else p[i]={x,1};
mp[p[i]]++;
}
for(int i=1;i<=n;i++){
auto now=p[i];
for(auto it:v[p[i].first]){
if(mp.count(it)){
ans+=mp[it];
if(now==it) ans--;
}
}
}
cout<<ans;
return 0;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】