/*
* @Author: Achan
* @Date: 2018-11-03 20:37:11
* @Last Modified by: Achan
* @Last Modified time: 2018-11-06 12:20:20
*/
#include<bits/stdc++.h>
#include<algorithm>
#include<iostream>
#include<cstring>
#include<cstdio>
#include<cstdlib>
#include<iomanip>
#include<vector>
#include<queue>
#include<cmath>
using namespace std;
#define X first
#define Y second
#define eps 1e-2
#define gcd __gcd
#define pb push_back
#define PI acos(-1.0)
#define lowbit(x) (x)&(-x)
#define fin freopen("in.txt","r",stdin);
#define fout freopen("out.txt","w",stdout);
#define bug printf("!!!!!\n");
#define mem(x,y) memset(x,y,sizeof(x))
#define rep(i,j,k) for(int i=j;i<(int)k;i++)
#define per(i,j,k) for(int i=j;i<=(int)k;i++)
#define pset(x) setiosflags(ios::fixed)<<setprecision(x)
#define io std::ios::sync_with_stdio(false),cin.tie(NULL),cout.tie(NULL);
typedef long long ll;
typedef long double LD;
typedef pair<int,int> pii;
typedef unsigned long long ull;
const int inf = 1<<30;
const ll INF = 1e18 ;
const int mod = 1e9+7;
const int maxn = 1e6+2;
const int mov[4][2] = {-1,0,1,0,0,1,0,-1};
const int Mov[8][2] = {-1,-1,-1,0,-1,1,0,-1,0,1,1,-1,1,0,1,1};
inline int read(){
int x=0,f=1;char ch=getchar();
while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}
while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}
return x*f;
}
int a[maxn];
int b[maxn];
int main()
{
int T;
T = read();
while(T--)
{
int n;
n = read();
int t;
for(int i=0;i<n;i++)
a[i] = (t = getchar() - '0');
getchar();
for(int i=0;i<n;i++)
b[i] = (t = getchar() - '0');
int flagw = 1; //判断下次可计数标志
int flag = 0; //统计1区间数
for(int i = 0; i<n;i++)
{
if(a[i]^b[i]) //不同为1
{
if(flagw)
{
flag++ ;
flagw = 0;
}
}
else flagw = 1;
}
if(flag > 2) //1区间数大于2 : 0
puts("0");
else if(flag == 2) //2个1区间 : 6
puts("6");
else if(!flag) //全部都一样的 : n*(n+1)/2
printf("%d\n",(ll)n*(n+1)>>1);
else //只有一个区间 : 2*(n-1)
printf("%d\n", (n - 1)<<1 );
}
}
The 2018 ACM-ICPC Asia Qingdao Regional Contest —— Flippy Sequence(思维 + 签到)
最新推荐文章于 2018-11-13 19:19:00 发布