Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
34398 swzzzz 【S】T2 C++ 运行超时 30 2000 MS 25128 KB 1223 2024-11-07 18:36:28

Tests(3/10):


#include<bits/stdc++.h> using namespace std; #define N 1000006 int n,m,c; char tmp; int a[N]; int read(){ int res=0; char ch='0'; while (isdigit(ch)) { res<<=1; res|=(ch-'0'); ch=getchar(); } return res; } set<int>s; int dp[N]; int cal(int x,int y){ int tmp2=(x^y),ans=0; while (tmp2) { ans+=(tmp2&1); tmp2>>=1; } return ans; } int main(){ cin>>n>>m>>c; getchar(); for(int i=1;i<=n;i++){ a[i]=read(); } //cout<<cal(a[2],a[1])<<endl<<a[2]<<' '<<a[1]<<endl; if(c==1){ cout<<n<<endl; return 0; } if(c==2){ int cnt=0; for(int i=1;i<=n;i++){ if(s.find(a[i])==s.end()) s.insert(a[i]); else cnt++; } cout<<2*(n-cnt)<<endl; return 0; }else{ for(int i=1;i<=n;i++){ dp[i]=c; for(int j=1;j<i;j++){ dp[i]=min(dp[i],1+cal(a[i],a[j])); } //cout<<dp[i]<<' '; dp[i]+=dp[i-1]; } cout<<dp[n]<<endl; } //cout<<cal(a[2],a[1])<<endl<<a[2]<<' '<<a[1]; return 0; }


测评信息: