1. 程式人生 > >Practice Round APAC test 2017--Problem A. Lazy Spelling Bee

Practice Round APAC test 2017--Problem A. Lazy Spelling Bee

題意

  • 由單詞W構造單詞A,構造規則:A的第 i 個字母從Wi1,Wi,Wi+1中選擇,當然,第一個和最後一個只有兩種選法。
  • 問可以構造多少個不同的單詞A

題解

#include <bits/stdc++.h>
using namespace std;

const int mod = 1000000007;
int main(){
#ifdef EXMY
freopen("A-large-practice.in", "r", stdin);
freopen("A-large-practice.txt", "w", stdout);
#endif // EXMY

    string s;
    int
T; cin >> T; for(int _ = 1; _ <= T; _++){ cin >> s; int n = s.length(); if(n == 1){ printf("Case #%d: %d\n", _, 1); continue; } long long ans = s[0] == s[1] ? 1 : 2; for(int i = 1; i < n - 1; ++i){ int
t = 3; if(s[i] == s[i - 1]) t--; if(s[i] == s[i + 1]) t--; if(s[i - 1] == s[i + 1] && t != 1) t--; ans *= t; ans %= mod; } ans *= (s[n - 1] == s[n - 2] ? 1 : 2); ans %= mod; printf("Case #%d: %I64d\n"
, _, ans); } return 0; }

相關推薦

Practice Round APAC test 2017--Problem A. Lazy Spelling Bee

題意 由單詞W構造單詞A,構造規則:A的第 i 個字母從Wi−1,Wi,Wi+1中選擇,當然,第一個和最後一個只有兩種選法。 問可以構造多少個不同的單詞A。 題解 #include &

Google APAC 2016 University Graduates Test Practice Round APAC test

谷歌校招筆試的練習賽,題目很簡單,應該只是用來熟悉環境的 題目連結 A - Bad Horse 題意 有一些人,並且告訴一些二元關係,表示哪對人是不能屬於一個組的,問可不可以將所有人分

Kickstart Round A 2017 Problem A. Square Counting 公式、數論逆元、除法取模

Problem Mr. Panda has recently fallen in love with a new game called Square Off, in which players compete to find as many different squares as possible on

【二分】Petrozavodsk Winter Training Camp 2017 Day 1: Jagiellonian U Contest, Monday, January 30, 2017 Problem A. The Catcher in the Rye

什麽 不同 stdin n) clas sqrt ios 這份 std 一個區域,垂直分成三塊,每塊有一個速度限制,問你從左下角跑到右上角的最短時間。 將區域看作三塊折射率不同的介質,可以證明,按照光路跑時間最短。 於是可以二分第一個入射角,此時可以推出射到最右側邊界上的位

【找規律】【DFS】XVII Open Cup named after E.V. Pankratiev Stage 14, Grand Prix of Tatarstan, Sunday, April 2, 2017 Problem A. Arithmetic Derivative

blog r+ clas 可能 .cn can typedef pro 找規律 假設一個數有n個質因子a1,a2,..,an,那麽n‘=Σ(a1*a2*...*an)/ai。 打個表出來,發現一個數x,如果x‘=Kx,那麽x一定由K個“基礎因子”組成。 這些基礎因子是2^

Codeforces Round #514 (Div. 2), problem: (A) Cashier

給定客人來的時間和要接待他們的時間,然後算出自己能夠有多少次的休息 挨個列舉每一段的空閒時間就好啦,第i段的空閒時間是 t[i] - t[i-1] - last[i-1],然後除以a求和即可。 程式碼如下: #include <bits/stdc++.h>

NWERC-2017 Problem A. Ascending Photo DP

題目大意:給出一段長度為n(1<=n<=1e6)的序列,把該線段切割幾次後重新拼接成一個單調不下降序列,問最少切割幾次。 雖然還不是很明白,但是還是記錄一下自己的理解吧。 首先做一部分預處理,把所有值做一次離散化,這個是顯然需要做的; 把一段連續的相

Codeforces Round #228 (Div. 2), problem: (A) Fox and Number Game

Note In the first example the optimal way is to do the assignment: x2 = x2 - x1. In the second example the optimal sequence of operations is: x3 = x3 -

Problem A. Kicksort Google Kickstart Round F 2017

題意:quick sort中,pivot會將array分成兩個sub array,worst case是一個sub array為空,另一個sub array 是N-1個。給定一個array(1~N全排列),問pivot是否一直都是worst case pivot。 本來感覺直接模擬quick

Problem A. Huge Numbers Google Kickstart Round G 2017

題意:calculate the remainder when A^(N!) is divided by P A^n%P=(A*A*...*A)%P=(A%P)^n A^(N!)%P=A^(1*2*...*N)%P=((A%P)^2)^(3*...*N)=(

Codeforces Round#413 Problem A - C

false font vector for循環 type als 不存在 pac 鏈接 [寫在前面感(亂)嘆(七)人(八)生(糟)的話]   本想借此機會一口氣玩到藍名,結果,A題寫炸(少判了一種情況),C題寫炸(辜負了我5分鐘狂敲出來的線段樹),結果又掉Rating..

Codeforces Round #423 (Div. 2, rated, based on VK Cup Finals) Problem A - B

initial index 技術 ble continue efi whole ret rem Pronlem A In a small restaurant there are a tables for one person and b tables for t

Codeforces Round #436 (Div. 2), problem: (D) Make a Permutation!

scanf problem codeforce ++ round class span com make #include <cstdio> #include <cstring> #include <vector> using names

2017 ACM-ICPC Asia Xi'an Problem A XOR(異或線性基 )

problem 線段樹 all gpo efi printf 異或 bre %d 題目鏈接 2017西安賽區 Problem A 題意 給定一個數列,和$q$個詢問,每個詢問中我們可以在區間$[L, R]$中選出一些數。    假設我們選出來的這個數列為$A[i_{

Problem A. Yogurt Google Kickstart Round E 2018

題意:給定N份酸奶,每份都有一個截止日期A[i],過期的酸奶 不能喝。每天最多隻能喝K個。問什麼策略可以喝到最多份酸奶。 貪心即可。越快過期的酸奶越早喝最好,但是需要排除當天已經過期的酸奶。例如截止日期a<b,先喝a後喝b,b剩餘的可等到時間比a長,所以多喝一份的可能性更大。極端情況:

Kick Start 2018-Round H-Problem A. Big Buttons

Problem You are a contestant on a popular new game show and are playing for the grand prize! There are two big buttons, a red one and a black one. You wi

Codeforces Round #525 E - Ehab and a component choosing problem

題目大意: 在一棵樹中 選出k個聯通塊 使得 這k個聯通塊的點權總和 / k 最大 並且這k個聯通塊不相互覆蓋(即一個點只能屬於一個聯通塊) 如果有多種方案,找到k最大的那種 給定n 有n個點 給定n個點的點權(點權可能出現負數) 給定這個樹的n-1條邊   當將所有點分成聯通塊後,

Kickstart Round F 2017 Problem B. Dance Battle

Problem Your team is about to prove itself in a dance battle! Initially, your team has E points of energy, and zero points of honor. Ther

Problem A. Big Buttons The Ways Google Kickstart Round H 2018

題意:構造長度為N的字串,每一位可以是R或者B。給了P個字首,構造的字串不可包含這P個字首。(如果不是作為前綴出現則可以。)問有多少種構造方式。 如果字首長度是x,以此為字首,有2^(N-x)個字串是invalid的。 如果這P個字首是互斥的,invalid的總和就是 s

Kickstart Round B 2017——Problem B. Center(及一點延伸)

題目介紹 相關知識 先介紹一些概念性的東西(機器學習的東西不是很懂,如有錯誤,歡迎指出,也請見諒): 機器學習中常用這些距離公式估算不同樣本之間的相似性,可以依此找到聚類質心點,進行聚類。之前在師兄的論文中也看到,使用閔氏距離估算某一個特徵在正