):稍微补一下.
void solve(){
int a,b,c;
scanf("%d%d%d",&a,&b,&c);
printf("%d\n",(a+c)%2);
}
void solve(){
int n;
scanf("%d",&n);
int c1 = 0, c2 = 0;
for(int i=1;i<=n;i++){
scanf("%d",&a[i]);
if(a[i]==1) c1++;
else if(a[i]==0) c2++;
}
ll ans = 0;
ans += ((ll)1<<c2)*c1;
printf("%lld\n",ans);
}
#include <iostream>
#include <cstdio>
#include <cstring>
#include <string>
using namespace std;
void solve(){
int n;
scanf("%d",&n);
string s;
cin >> s;
int ans = n+1;
for(int i=0;i<26;i++){
char c = (char)('a'+i);
int cnt = 0,l = 0, r = n-1;
while(l<r){
if(s[l]==s[r]) l++,r--;
else if(s[l]==c) l++,cnt++;
else if(s[r]==c) r--,cnt++;
else{
cnt = n+1;
break;
}
}
ans = min(ans,cnt);
}
if(ans == n+1) puts("-1");
else printf("%d\n",ans);
}
int main()
{
int t;
scanf("%d",&t);
while(t--){
solve();
}
return 0;
}
#include <iostream>
#include <cstdio>
#include <cstring>
#include <string>
using namespace std;
void solve(){
int n;
scanf("%d",&n);
// for(int i=1;i<=n;i++) scanf("%d",&a[i]);
if(n&1){
int x,y,z;
scanf("%d%d%d",&x,&y,&z);
if((x+y)!=0) printf("%d %d %d ",-z,-z,x+y);
else if((y+z)!=0) printf("%d %d %d ",y+z,-x,-x);
else printf("%d %d %d ",-y,x+z,-y);
n-=3;
}
for(int i=1;i<=n;i+=2){
int x,y;
scanf("%d%d",&x,&y);
printf("%d %d ",-y,x);
}
cout << endl;
}
int main()
{
int t;
scanf("%d",&t);
while(t--){
solve();
}
return 0;
}
F1. Korney Korneevich and XOR (easy version)
F1,F2的差距是数据范围不一样,均为动态规划类型题.
F1可以定义dp[i]表示异或值为i的最小末尾值.
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <vector>
#include <cstring>
#include <set>
using namespace std;
int f[514];
//int a[100010];
//定义dp[i]表示异或值为 i 的最小末尾值.
int main()
{
int n;
scanf("%d",&n);
// for(int i=1;i<=n;i++) scanf("%d",&a[i]);
memset(f,0x3f,sizeof f);
f[0] = 0;
int x;
for(int i=1;i<=n;i++){
scanf("%d",&x);
f[x] = min(f[x],x);
for(int j=0;j<=512;j++){
if(f[j]<x){
f[j^x] = min(f[j^x],x);
}
}
}
set<int> st;
for(int i=0;i<=512;i++){
if(f[i]!=0x3f3f3f3f) st.insert(i);
}
printf("%d\n",st.size());
set<int>::iterator it;
for(it = st.begin();it!=st.end();it++){
cout << *it << " ";
}
cout << endl;
return 0;
}