小红的牌是固定的序列,小苯的牌可排序。现在的问题是怎么样才可以算出小苯赢最多的种类。有题目意思可知:比较是如果是小牌则保留,如果是大牌则会删除。我仔细思考了一会儿,发现比小红最小值小或是等于的都不可以赢,比小红最小值大的都可以赢。那么我们可以用sort降序排序小苯的,然后找出比最小值大的和比最小值小的或是等于的。 代码在此处: #include <bits/stdc++.h> using namespace std; typedef long long ll; const int MOD = 998244353; int main(){ int T; cin>>T; int n; while(T--){ cin>>n; int min1=4100000; vectora(n),b(n); for(int i=0;i<n;i++){ cin>>a[i]; } for(int i=0;i<n;i++){ cin>>b[i]; if(b[i]<min1){ min1=b[i]; } } sort(a.begin(),a.end(),greater()); int x=0,y=0; for(int i=0;i<n;i++){ if(a[i]>min1){ x++; } else{ y++; } } long long sum1=1,sum2=1; for(int i=1;i<=x;i++){ sum1=isum1%MOD; } for(int i=1;i<=y;i++){ sum2=isum2%MOD; } cout<<sum1sum2%MOD<<endl; } return 0; }

京公网安备 11010502036488号