Codeforces Round #355 (Div. 2) C Vanya and Label 快速冪取模
先預處理出每個字元可能的組合情況,然後 用map存各個字元出現的字數,最後快速冪一下就好了。。算是codeforces 裡面C題中比較簡單的一道了。。
#include<bits/stdc++.h> typedef long long ll; using namespace std; int cnt[65]; const int mod = 1e9+7; char s[100010]; map<int, int>mp; int change(char ch) { if(ch >= '0' && ch <= '9') return ch-'0'; if(ch >= 'A' && ch <= 'Z') return ch-'A'+10; if(ch >= 'a' && ch <= 'z') return ch-'a'+36; if(ch == '-') return 62; if(ch == '_') return 63; } ll mypow(ll n, ll t) { ll ans = 1; while(t) { if(t%2 == 1) ans = ans*n%mod; n = n*n%mod; t >>= 1; } return ans; } int main() { ll ans = 1; mp.clear(); for(int i = 0; i <= 63; i++) { int num = 0; for(int j = 0; j <= 63; j++) { for(int k = 0; k <= 63; k++) { if((j&k) == i)//==運算子的優先順序比較高。。 { num++; //if(i == 61) //printf("j:%d k:%d i:%d\n", j, k, i); } } } cnt[i] = num; } scanf("%s", s); int len = strlen(s); for(int i = 0; i < len; i++) mp[change(s[i])]++; for(int i = 0; i <= 64; i++) { if(mp[i]) { ans = ans*mypow((ll)cnt[i], (ll)mp[i])%mod; //printf("i:%d cnt[i]:%d ans:%I64d\n", i, cnt[i], ans); } } printf("%I64d\n", ans); return 0; }
相關推薦
Codeforces Round #355 (Div. 2) C Vanya and Label 快速冪取模
先預處理出每個字元可能的組合情況,然後 用map存各個字元出現的字數,最後快速冪一下就好了。。算是codeforces 裡面C題中比較簡單的一道了。。 #include<
Codeforces Round #355 (Div. 2) D. Vanya and Treasure 分治暴力
復雜度 font level -1 exactly tput %d test air D. Vanya and Treasure Vanya is in the palace that can be represented as a grid n?×?m. Each
【動態規劃】 Codeforces Round #416 (Div. 2) C. Vladik and Memorable Trip
and main spa def esp 動態 return 價值 can 劃分那個序列,沒必要完全覆蓋原序列。對於劃分出來的每個序列,對於某個值v,要麽全都在該序列,要麽全都不在該序列。 一個序列的價值是所有不同的值的異或和。整個的價值是所有劃分出來的序列的價值之和。
Codeforces Round #482 (Div. 2) C Kuro and Walking Route
any HA msu OS rom element res size false C. Kuro and Walking Route time limit per test 2 seconds memory limit per test 256 megabytes
Codeforces Round #292 (Div. 2) C. Drazil and Factorial 515C
note prope file ssi CI AC TP 最大值 NPU C. Drazil and Factorial time limit per test 2 seconds memory limit per test 256 megabytes inpu
(又FST在long long!!)Codeforces Round #293 (Div. 2)C. Anya and Smartphone
我的天,又FST在 long long piapiapia 扇死 題意:(我研究了半天才看懂) 第一行輸入應用總數 n ,要一次開啟應用的總數 ,每個螢幕最多的應用數。 第二行按位子(1~n)順序輸入應用的編號; 第三行輸入要依次開啟的應用。 問我們要求需
Codeforces Round #197 (Div. 2): C. Xenia and Weights(記憶化搜尋)
題意: 先輸入一個長度為10的01串,第i個數字為1表示你有重量為i的砝碼無數個,第i個數字為0表示你沒有重量為i的砝碼,你需要按照以下規則在一個一開始平衡的天平上放上m個砝碼 第1個砝碼放在天平左邊,第2個砝碼放在天平的右邊,第3個砝碼放在天平左邊……依次
【Codeforces Round #290 (Div. 2)-C. Fox And Names】 思維題+拓撲排序
Codeforces Round #290 (Div. 2)-C. Fox And Names 題意 給 你
Codeforces Round #524 (Div. 2) C. Masha and two friends 思路
題目:題目連結 思路:直接計數顯然是不好處理的,但分情況討論只要不寫錯這題是一定可以出的,但這樣基本做完這個題就沒時間做其他題了,但當時我就這麼蠢的這樣做了,比賽一個半小時的時候突然發現一個似乎可行的規律,但因為時間問題沒有證,當時那個思路已經快寫完了也沒有換思路寫,就杯具了,最後那個寫了一坨的程式碼耗了我
Codeforces Round #524 (Div. 2) C. Masha and two friends
C. Masha and two friends time limit per test 1 second memory limit per test 256 megabytes input standard input output standard outpu
Codeforces Round #525 (Div. 2) C. Ehab and a 2-operation task(數論構造)
思路來源 http://www.cnblogs.com/Dup4/p/10068891.html 題解 注意%可以起到等同於減的作用。 Solution1: 先給區間[1,n]加上一個較大的數D,比如500W, 這樣ai就變為D+ai, 由於ai-i<1
Codeforces Round #525 (Div. 2)C. Ehab and a 2-operation task
一個數 n-1 i++ 我們 text ++ target sin const C. Ehab and a 2-operation task 題目鏈接:https://codeforc.es/contest/1088/problem/C 題意: 給出n個數,然後最多可
Codeforces Round #525 (Div. 2) C. Ehab and a 2-operation task
題意: 給定一個長度為 n 的陣列a[ ],並且有兩種操作: ①將前 i 個數全都加上 x; ②將前 i 個數全都 mod x 要求用不超過 n+1 次操作,使得陣列 a[ ] 嚴格單調遞增。 思路: 對於每個數a[ i ],實施操作 a[ i ]%( a[ i ]-i
Codeforces Round #525 (Div. 2)C - Ehab and a 2-operation task
題目 題意: 給你長度為n的陣列a[i],最多操作n+1次,每次都可以將前 i 個數 (操作1)都加上x,或者(操作2)都%x ,(x為1e6以內的任意數,且每次操作可以不同), 使得陣列a嚴格單調遞增(一定後一項大於前一項)。 要你輸出一個總的
Codeforces Round #223 (Div. 2): C. Sereja and Prefixes(二分+遞迴)
題意: 你有一個序列,一開始為空,之後進行m次操作,操作有兩種: 1 x:在當前序列後面新增一個數x 2 x, y:將序列的前x個數複製y遍接序列後面(x<10000) 之後n次
Codeforces Round #356 (Div. 2) C. Bear and Prime 100 (有趣的題目)
C. Bear and Prime 100 time limit per test 1 second memory limit per test 256 megabytes input standard input output standard
Codeforces Round #524 (Div. 2)C. Masha and two friends(容斥定理)
傳送門 題意:先給出一個n行m列的矩陣,這個矩陣是黑白交錯的,左下角是白的,然後再給出一個矩陣,這個矩陣就全部染成白色的,之後再給出一個矩陣,這個矩陣染成黑色的,資料範圍是1e9,問最後白色塊和黑色塊分別由多少? 題解:首先可以算出這個大矩陣的黑色塊和白色塊分別有多少個,然後我們算下要染成白
Codeforces Round #416 (Div. 2) C Vladik and Memorable Trip
根據題目要求,目的地相同的人必須在一個車廂中,或者坐下趟車。因此,每個對人有兩種決策:(1)上車(2)不上車 上車就必須保證,所有該目的的人之間的乘客也必須上車,這樣中間的人同理,這個區間會不斷擴張,直到不會有區間外的人跟這個區間裡的某人目的地相同為止。剩下的區間又會變成子問題,記憶化求解即
Codeforces Round #430 (Div. 2) C. Ilya And The Tree(dfs+最大公約數+因子+樹)
C. Ilya And The Tree time limit per test 2 seconds memory limit per test 256 megabytes i
Codeforces Round #430 (Div. 2) C. Ilya And The Tree
C. Ilya And The Tree time limit per test2 seconds memory limit per test256 megabytes inputstandard input outputstandard output