AtCoder Beginner Contest 371(C-D)
https://atcoder.jp/contests/abc371
C:
暴力。思路是把1-8的点映射到全排列上面,然后把有的点去掉没的点加上取ans最小值。
这题复杂度是
#include <bits/stdc++.h> using namespace std; #define pii pair<int,int> #define mkp make_pair #define lowbit(x) ((x&(-x))) #define int long long const int maxn=2e5+10; bool edgg[10][10]; bool edgh[10][10],vis[10]; int mp[10],n; int a[10][10],sum=1e17; void jud(){ int tmp=0; //for(int i=1;i<=n;i++)cout<<mp[i]<<' '; //cout<<endl; for(int i=1;i<=n;i++){ for(int j=i+1;j<=n;j++){ if(edgg[i][j]!=edgh[mp[i]][mp[j]]){ int x=mp[i],y=mp[j];if(x>y)swap(x,y); tmp+=a[x][y]; } } } sum=min(tmp,sum); } void dfs(int nw){ if(nw==n){ jud();return; } for(int i=1;i<=n;i++){ if(!vis[i]){ vis[i]=1;mp[nw+1]=i; dfs(nw+1); vis[i]=0; } } } void solve(){ cin>>n; int mg,mh,u,v;cin>>mg; for(int i=1;i<=mg;i++){ cin>>u>>v; edgg[u][v]=1; edgg[v][u]=1; } cin>>mh; for(int i=1;i<=mh;i++){ cin>>u>>v; edgh[u][v]=1; edgh[v][u]=1; } for(int i=1;i<=n;i++)for(int j=i+1;j<=n;j++)cin>>a[i][j]; for(int i=1;i<=n;i++){ vis[i]=1; mp[1]=i;dfs(1); vis[i]=0; } cout<<sum<<endl; } signed main(){ ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int tt;tt=1;while(tt--){ solve(); } }
D:
最先想到的是权值线段树。。但是发现只要二分找区间就能前缀和做了
#include <bits/stdc++.h> using namespace std; #define pii pair<int,int> #define mkp make_pair #define lowbit(x) ((x&(-x))) #define int long long const int maxn=2e5+10; int x[maxn],p[maxn],pre[maxn]; void solve(){ int n;cin>>n; for(int i=1;i<=n;i++){ cin>>x[i]; } for(int i=1;i<=n;i++){ cin>>p[i];pre[i]=pre[i-1]+p[i]; } int q;cin>>q; while(q--){ int ql,qr;cin>>ql>>qr; int l=0,r=n,mid=(l+r+1)/2; while(l<r){ if(x[mid]<ql)l=mid; else r=mid-1; mid=(l+r+1)/2; } int ml=mid,mr; l=0,r=n,mid=(l+r+1)/2; while(l<r){ if(x[mid]<=qr)l=mid; else r=mid-1; mid=(l+r+1)/2; } //cout<<pre[mid]<<' '<<pre[ml]<<"mk\n"; cout<<pre[mid]-pre[ml]<<"\n"; } } signed main(){ ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int tt;tt=1;while(tt--){ solve(); } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】