【【题目讲解】2023牛客寒假算法基础集训营2】https://www.bilibili.com/video/BV1BG4y1X7eh?p=3&vd_source=21581d752de8daca00ef38561a7264f6
题目来源 2023牛客寒假算法基础集训营2_ACM/NOI/CSP/CCPC/ICPC算法编程练习赛_牛客竞赛OJ (nowcoder.com)
A-Tokitsukaze and a+b=n (easy)_2023牛客寒假算法基础集训营2 (nowcoder.com)
第一想到的是两个for循环,但是可以优化
#include<iostream> using namespace std; int L1,L2,R1,R2,n; int main() { int t; cin>>t; while(t--) { cin>>n>>L1>>R1>>L2>>R2; int ans=0; for(int a=L1;a<=R1;a++) { int b=n-a; if(b>=L2&&b<=R2) ans++; } printf("%d\n",ans); } return 0; }
B-Tokitsukaze and a+b=n (medium)_2023牛客寒假算法基础集训营2 (nowcoder.com)
两个区间求交集
#include <iostream> using namespace std; int main() { long long int t, n, l1, l2, r1, r2, res; cin>>t; while (t--) { cin>>n; cin>>l1>>r1; cin>>l2>>r2; if(l1+l2>n||r1+r2<n){ cout<<"0"<<endl; }else{ cout<<abs(max(l1,n-r2)-min(n-l2,r1))+1<<endl; } } }
C-Tokitsukaze and a+b=n (hard)_2023牛客寒假算法基础集训营2 (nowcoder.com)
看视频吧(一定得看完)视频讲的方法值得学习
D-Tokitsukaze and Energy Tree_2023牛客寒假算法基础集训营2 (nowcoder.com)
这是一道好题
一定一定得看看视频 (细看)
#include<bits/stdc++.h> using namespace std; const int N = 2e5 + 5; long long f[N] ,v[N]; int main(){ int n ; cin >> n; f[1] = 1; for(int i = 2 ; i <= n ; i ++)//遍历整条树的高度 { int k; cin >> k; f[i] = f[k] + 1; } for(int i = 1 ; i <= n ; i ++) { scanf("%d",&v[i]); } sort(v+1,v+1+n); sort(f+1,f+1+n); long long ans = 0 ; for(int i = 1 ; i <= n ; i ++) ans += f[i] * v[i]; cout << ans; }
H-Tokitsukaze and K-Sequence_2023牛客寒假算法基础集训营2 (nowcoder.com)
一道妙题,如果拼不出来题目的含义,建议看看视频
一定要细细品味
所以写题时最好演草一下
注意:set<int>st有查重功能 multiset<int>st没有
视频里的代码的思路十分好
就不给代码了,直接看视频吧🤐
J-Tokitsukaze and Sum of MxAb_2023牛客寒假算法基础集训营2 (nowcoder.com)
一定要去看视频
#include<iostream> using namespace std; typedef long long LL; const int N=1e5+10; int a[N]; int main() { int t; cin>>t; while(t--) { int n; cin>>n; LL res=0; for(int i=1;i<=n;i++) { cin>>a[i]; res+=2*n*abs(a[i]); } printf("%lld\n",res); } return 0; }