社区讨论

求助abc294d

灌水区参与者 9已保存回复 22

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
22 条
当前快照
1 份
快照标识符
@lo2vk7zw
此快照首次捕获于
2023/10/23 20:29
2 年前
此快照最后确认于
2023/10/23 20:29
2 年前
查看原帖
CPP
#include<iostream>
#include<cstring>
using namespace std;
long long m[2050],p[10],ans,tot;
int r[10]={1,2,4,8,16,32,64,128,256,512};
char s[500005];
int main(){
    scanf("%s",&s);
    for(int i=0;i<strlen(s);i++){
    	p[s[i]-'0']++;
    	p[s[i]-'0']%=2;
    	if(p[s[i]-'0']==1)tot+=r[s[i]-'0'];
    	else tot-=r[s[i]-'0'];
    	ans+=m[tot];
    	if(p[0]==0&&p[1]==0&&p[2]==0&&p[3]==0&&p[4]==0&&p[5]==0&&p[6]==0&&p[7]==0&&p[8]==0&&p[9]==0)ans++;
    	m[tot]++;
    }
    printf("%lld",ans);
    return 0;
}
超时!!!!!!!!!!!!!!!!

回复

22 条回复,欢迎继续交流。

正在加载回复...