2024年暑期2024牛客暑期多校训练营1 C和H题解
C题Sum of Suffix Sums
题目大意:
- 开始是给你一空数组,要经历q次操作,每次操作都会给出两个数字t和v,其中要从数组末尾去走元素t次,最后加上元素v。
- 定义si=ai + ai+1+ai+2+ai+3+......+an,最后求s1+s2+s3+.......+sn的总和。
- 最后答案注意取模。
题解:
注意到sum的总和其实就是i*ai的累加和,知道这点后,就不难写出来了。废话不多说上代码!
#include<iostream> #include<vector> using namespace std; typedef long long ll; const int mod=1e9+7; vector<int> vec; ll sum=0; ll num=0;//我觉得唯一要注意就是这个num,说实话题目明明标注的是1<=q<=1e5,那么num应该也<=1e5才对,但硬是只有long long 类型才对。 void solve() { int t,v; cin >> t >> v; for(int i=0;i<t;i++) { sum=(sum-num*vec[num-1]%mod+mod)%mod; vec.pop_back(); num--; } vec.push_back(v); num++; sum=(sum+v*num%mod)%mod; cout << sum<< "\n"; } signed main() { int q; cin >> q; while(q--) { solve(); } return 0; }
H:World Finals
题目大概意思就是首先给你n支能参加第46届world finals队伍,给出他们能解决的问题数量和罚时数量。再给你m支能参加第47届world finals,同样给出能解决的问题数量和罚时。注意可能有多支队伍有资格参加两场比赛 , 但每支队伍只能参加一场比赛。最后问你lzr010506最后能获得的最好名次是多少。
题解:
这题同样很简单,我们只需要把每场比赛的队伍从高到低排序。最后再看看,每场比赛lzr010506前面有多少只队伍有打两场比赛的资格,将它们去掉后,比较lzr010506能取得的最好成绩是多少。
代码:
#include<iostream> #include<vector> #include<map> #include<algorithm> using namespace std; typedef long long ll; typedef struct { string s; int p,t; }team; struct cmp { bool operator()(const team& s1,const team& s2) { if(s1.p== s2.p) { return s1.t < s2.t; } else return s1.p > s2.p; } }; map<string,int> maps; void solve() { vector<team> WF_46,WF_47; int n,m; cin >> n; team temp; for(int i=0;i<n ;i++) { cin >> temp.s >> temp.p >>temp.t; WF_46.push_back(temp); maps[temp.s]=1; } sort(WF_46.begin(),WF_46.end(),cmp()); cin >> m; for(int i=0;i<m;i++) { cin >> temp.s >> temp.p >> temp.t; WF_47.push_back(temp); if(maps[temp.s]) maps[temp.s]=2; else maps[temp.s]=1; } sort(WF_47.begin(),WF_47.end(),cmp()); int k1,k2,c1=0,c2=0; for(k1=0;k1<n ;k1++) { if(WF_46[k1].s=="lzr010506")break; if(maps[WF_46[k1].s]==2)c1++; } k1++; for(k2=0;k2<m ;k2++) { if(WF_47[k2].s=="lzr010506")break; if(maps[WF_47[k2].s]==2)c2++; } k2++; if(k1-c1 < k2-c2)cout<< k1-c1; else cout << k2 -c2; } signed main() { solve(); return 0; }
posted on 2024-07-22 23:33 kiyotaka-ayanokoji 阅读(7) 评论(0) 编辑 收藏 举报