1. 程式人生 > >ACM-ICPC 2018青島網絡賽-H題

ACM-ICPC 2018青島網絡賽-H題

main names 開始 網絡 out pan syn str cin

把這題的每個點分成兩種情況看,如果是從這個點開始,0算作2,1算作1,如果是中間點或者是結束點,如果和前面的相同看作2,不相同看作1

#include <iostream>
#include <string>
#include <string.h>

using namespace std;

int main()
{
    ios::sync_with_stdio(false);
    int t;
    cin >> t;
    while (t--)
    {
        int a, b;
        
string str; cin >> str; int num = 0; long long sum = 0; for (int i = 0; i < str.size(); i++) { a = str[i] - 0; if (!a) a = 2; if (i) { if (str[i] == str[i - 1]) { b
= 2; } else { b = 1; } } sum += a * (str.size() - i) + b * (str.size() - i) * num; num++; } cout << sum << endl; } return 0; }

ACM-ICPC 2018青島網絡賽-H題