1 条题解
-
119210237 (笨笨童年) LV 8 MOD @ 2023-07-08 12:25:22
这道题作为div3的第三道题,难度还是比较简单的,与算法无关,即使是编程小白也是可以解决的。难点在于代码量大,需要多加练习。
对于每个人要找到他自己的最优策略,这就是一个排序+遍历的问题。
遍历的过程中,考虑当前题目能不能做?目前的罚时如何计算?衡量每个人分数的标准是什么?做题数量+罚时。本人用的是vector+pair遍历。
// // main.cpp // 2 // // Created by 汪汪队 on 2023/7/8. // #include<iostream> #include<algorithm> #include<set> #include<map> #include<queue> #include<vector> #define int long long using namespace std; void test(){ int n,m,t; cin>>n>>m>>t; vector<vector<int>>p(n); vector<pair<int,int>>s(n); for (int i=0; i<n; i++) { for (int j=0; j<m; j++) { int t; cin>>t; p[i].push_back(t); } sort(p[i].begin(),p[i].end()); for (int j=1; j<p[i].size(); j++) { p[i][j]=p[i][j]+p[i][j-1]; } for (int j=0; j<p[i].size(); j++) { if(p[i][j]<=t){ s[i].first++; s[i].second+=p[i][j]; } } } int ans=0; for (int i=1; i<s.size(); i++) { if(s[0].first>s[i].first) ans++; else if (s[0].first==s[i].first&&s[0].second<=s[i].second) ans++; } cout<<n-ans<<endl; return; } signed main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); int t; cin>>t; while (t--) { test(); } return 0; } //ans=2;
- 1
信息
- ID
- 1460
- 难度
- 7
- 分类
- (无)
- 标签
- (无)
- 递交数
- 37
- 已通过
- 9
- 通过率
- 24%
- 上传者