睿抗省赛2023
5.相对成功与相对失败
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
#define N 100011
typedef pair<ll,int> pii;
#define inf 0x3f3f3f3f
int t;
int a[N],b[N];
ll dp[N][4];
int main()
{ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);cin>>t;while(t--){int n;cin>>n;for(int i=1;i<=n;i++){int x,y;cin>>x>>y;if(x&&!y) a[i]=3;if(x&&y) a[i]=2;if(!x&&!y) a[i]=2;if(!x&&y) a[i]=1;}for(int i=1;i<=n;i++){cin>>b[i];}for(int i=1;i<=n;i++) for(int j=1;j<=3;j++) dp[i][j]=1;for(int j=1;j<=3;j++) dp[n+1][j]=0;for(int i=1;i<=n;i++){dp[i][a[b[i]]]=0;}for(int i=2;i<=n+1;i++){for(int j=1;j<=3;j++){ll mi=dp[i-1][3];for(int k=2;k>=j;k--){mi=min(dp[i-1][k],mi);}dp[i][j]+=mi;}}ll ma=INT_MAX;for(int i=1;i<=3;i++){ma=min(ma,dp[n+1][i]); } cout<<ma<<endl;} return 0;}
u3--骰子游戏
题干: RC-u3 骰子游戏-CSDN博客
枚举所有情况
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
#define N 100011
typedef pair<ll,int> pii;
#define inf 0x3f3f3f3f
int t;
int a[6];
int main()
{ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);cin>>t;while(t--){int c=0;set<int> s;int d[7];memset(d,0,sizeof(d));while(c<=4){cin>>a[c++];s.insert(a[c-1]);d[a[c-1]]++;}if(s.size()==1){cout<<0<<" "<<0<<" "<<1<<endl;continue;}sort(a,a+c);if(s.size()==2){if(d[a[0]]==4||d[a[4]]==4){cout<<1<<" "<<1<<' '<<6<<endl;continue;}else{cout<<2<<" "<<11<<" "<<36<<endl;continue;}}else{int f=3;for(int i=0;i<=4;i++){if(a[i]!=i+2){f=0;break;}} if(f==3){cout<<4<<" "<<19<<" "<<324<<endl;continue;}f=3;for(int i=0;i<=4;i++){if(a[i]!=i+1){f=0;break;}} if(f==3){cout<<1<<" "<<1<<" "<<6<<endl;continue;}f=0;for(int i=0;i<=4;i++){if(d[a[i]]==3){f=1;break;}}if(f){cout<<2<<" "<<4<<" "<<9<<endl;continue; }int c=0;for(int i:s) if(d[i]==2) c++;if(c==2){cout<<3<<" "<<4<<" "<<9<<endl;continue;}if(c==1) {cout<<3<<" "<<13<<" "<<18<<endl;continue; }else cout<<2<<" "<<17<<" "<<18<<endl;}}return 0;}
u4-相对论大师