Codeforces1045I
生活随笔
收集整理的這篇文章主要介紹了
Codeforces1045I
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Codeforces1045I
做法:如果至多有一種字母出現奇數次,則合法,因此把整個串用一個26位2進制數表示,對于每一個數,枚舉可能的對應串的狀態即可。
#include <bits/stdc++.h> typedef long long ll; inline int read() {char c = getchar(); int x = 0, f = 1;while( ! isdigit(c) ) { if(c == '-') f = -1; c = getchar(); }while( isdigit(c) ) { x = x*10 + c - '0'; c = getchar(); }return x * f; } inline void write( ll x ) {if( x >= 10 ) write( x / 10 );putchar( x % 10 + '0' ); } using namespace std; int n, w; char c; ll ans = 0; map< ll , int > M; int main() {n = read();for ( int i = 1 ; i <= n ; ++ i ) {w = 0;c = getchar();while( c != '\n' ) { w ^= ( 1 << ( c - 'a' ) ); c = getchar(); }ans += M[ w ];for ( int j = 0 ; j < 26 ; ++ j ) if( M.find( w ^ ( 1 << j ) ) != M.end() ) ans += M[ w ^ ( 1 << j ) ];++ M[ w ];}write( ans ); putchar( '\n' );return 0; }轉載于:https://www.cnblogs.com/RRRR-wys/p/9727222.html
總結
以上是生活随笔為你收集整理的Codeforces1045I的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: GYM 101669F - Binary
- 下一篇: 原生家庭是什么意思 什么是原生家庭