小苯的九宫格
#include<bits/stdc++.h>
using namespace std;
map<int,int>mp;
void solve(){for(int i=1;i<=9;i++){int x;cin>>x;mp[i]=x;}string s;cin>>s;for(auto i:s){cout<<mp[i-'0'];}
}
int main(){ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);int t;// cin>>t;t=1;while(t--)solve();return 0;
}
小苯的好数组
#include<bits/stdc++.h>
using namespace std;
void solve(){int n;cin>>n;vector<int>a(n+1);int pos=0;for(int i=1;i<=n;i++){cin>>a[i];if(a[i]<a[i-1])pos=1;}if(!pos)cout<<0<<endl;else cout<<n<<endl;
}
int main(){ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);int t;// cin>>t;t=1;while(t--)solve();return 0;
}
小苯的数字合并
#include<bits/stdc++.h>
#define int long long
using namespace std;
void solve(){int n;cin>>n;vector<int>a(n+1);vector<int>sum(n+1);int cmin=0x3f3f3f3f;for(int i=1;i<=n;i++){cin>>a[i];sum[i]=sum[i-1]+a[i];}if(n==1)cout<<0<<endl;else{int ans3=0;for(int i=1;i<=n;i++){ans3=max(ans3,max(sum[i-1],sum[n]-sum[i])-a[i]);}cout<<ans3<<endl;}
}
signed main(){ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);int t;// cin>>t;t=1;while(t--)solve();return 0;
}
小苯的排列构造
#include<bits/stdc++.h>
#define int long long
using namespace std;
void solve(){int n;cin>>n;vector<int>a(n+1);int pos=0,flag=0;for(int i=1;i<=n;i++){cin>>a[i];if(a[i]==1)flag=1;if(i>1&&a[i-1]%a[i]!=0)pos=1;if(i>1&&a[i]>a[i-1])pos=1;}vector<int>vis(n+1);vector<int>b(n+1);if(!flag)pos=1;if(pos)cout<<-1<<endl;else {for(int i=1;i<=n;i++){if(!vis[a[i]])b[i]=a[i],vis[a[i]]++;else {vis[a[i]]++;while(vis[vis[a[i]]*a[i]])vis[a[i]]++;if(vis[a[i]]*a[i]>n){cout<<-1<<endl;return ;}b[i]=vis[a[i]]*a[i];vis[a[i]*vis[a[i]]]++;}}for(int i=1;i<=n;i++)cout<<b[i]<<' ';}
}
signed main(){ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);int t;// cin>>t;t=1;while(t--)solve();return 0;
}
小苯的01背包(hard)
#include<bits/stdc++.h>
using namespace std;
#define pii pair<int,int>
void solve(){int n,k;cin>>n>>k;vector<pii>a(n+1),b;for(auto &[p,q]:a){cin>>p>>q;}b=a;int res=0;for(int i=30;i>=0;i--){int now=-1;vector<pii>t;for(int j=0;j<b.size();j++){if((b[j].second>>i)&1){now&=b[j].first;t.push_back(b[j]);}}if(now!=-1&&now<=k){res^=(1<<i);b=t;}}cout<<res<<endl;
}
int main(){ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);int t;// cin>>t;t=1;while(t--)solve();return 0;
}