zoukankan      html  css  js  c++  java
  • [Codeforces677C]Vanya and Label(组合数学,快速幂)

    题目链接:http://codeforces.com/contest/677/problem/C

    题意:给一个字符和数字的映射关系,然后再给一个字符串。问有多少个其他的字符串,使得那些字符串之间相互操作:每一个字符相与的结果不变。

    这题给了一组映射关系,由于只有64个字符,那也就是说明只用到了6个bit位。如果这个字符串中某个字符与另一个字符串的同一位的字符相与结果想要不变,举个例子:

    字符串s中有一个字符的数字映射是101010,那对应的字符的结果应当是1X1X1X,X有可能是1&0、0&1、0&0,所以遇到一个X就有三种情况,那么这个例子里有3个X,也就是3^3种情况。推广一下就是有k个X,那就有3^k个。

      1 /*
      2 ━━━━━┒ギリギリ♂ eye!
      3 ┓┏┓┏┓┃キリキリ♂ mind!
      4 ┛┗┛┗┛┃\○/
      5 ┓┏┓┏┓┃ /
      6 ┛┗┛┗┛┃ノ)
      7 ┓┏┓┏┓┃
      8 ┛┗┛┗┛┃
      9 ┓┏┓┏┓┃
     10 ┛┗┛┗┛┃
     11 ┓┏┓┏┓┃
     12 ┛┗┛┗┛┃
     13 ┓┏┓┏┓┃
     14 ┃┃┃┃┃┃
     15 ┻┻┻┻┻┻
     16 */
     17 #include <algorithm>
     18 #include <iostream>
     19 #include <iomanip>
     20 #include <cstring>
     21 #include <climits>
     22 #include <complex>
     23 #include <fstream>
     24 #include <cassert>
     25 #include <cstdio>
     26 #include <bitset>
     27 #include <vector>
     28 #include <deque>
     29 #include <queue>
     30 #include <stack>
     31 #include <ctime>
     32 #include <set>
     33 #include <map>
     34 #include <cmath>
     35 using namespace std;
     36 #define fr first
     37 #define sc second
     38 #define cl clear
     39 #define BUG puts("here!!!")
     40 #define W(a) while(a--)
     41 #define pb(a) push_back(a)
     42 #define Rlf(a) scanf("%lf", &a);
     43 #define Rint(a) scanf("%d", &a)
     44 #define Rll(a) scanf("%I64d", &a)
     45 #define Rs(a) scanf("%s", a)
     46 #define Cin(a) cin >> a
     47 #define FRead() freopen("in", "r", stdin)
     48 #define FWrite() freopen("out", "w", stdout)
     49 #define Rep(i, len) for(int i = 0; i < (len); i++)
     50 #define For(i, a, len) for(int i = (a); i < (len); i++)
     51 #define Cls(a) memset((a), 0, sizeof(a))
     52 #define Clr(a, x) memset((a), (x), sizeof(a))
     53 #define Full(a) memset((a), 0x7f7f, sizeof(a))
     54 #define lrt rt << 1
     55 #define rrt rt << 1 | 1
     56 #define pi 3.14159265359
     57 #define RT return
     58 #define lowbit(x) x & (-x)
     59 #define onenum(x) __builtin_popcount(x)
     60 typedef long long LL;
     61 typedef long double LD;
     62 typedef unsigned long long ULL;
     63 typedef pair<int, int> pii;
     64 typedef pair<string, int> psi;
     65 typedef map<string, int> msi;
     66 typedef vector<int> vi;
     67 typedef vector<LL> vl;
     68 typedef vector<vl> vvl;
     69 typedef vector<bool> vb;
     70 
     71 const int maxn = 100100;
     72 const int mod = 1000000007;
     73 int cv[256];
     74 char s[maxn];
     75 
     76 int quickmul(int x, int n) {
     77     int ret = 1, t = x;
     78     while(t) {
     79         if(n & 1) ret = (ret * t) % mod;
     80         t = t * t % mod;
     81         n >>= 1;
     82     }
     83     return ret;
     84 }
     85 
     86 int main() {
     87     // FRead();
     88     Rep(i, 10) cv['0'+i] = i;
     89     For(i, 10, 36) cv['A'+i-10] = i;
     90     For(i, 36, 62) cv['a'+i-36] = i;
     91     cv['-'] = 62; cv['_'] = 63;
     92     while(~Rs(s)) {
     93         int n = strlen(s);
     94         LL ret = 1;
     95         Rep(i, n) {
     96             int p = cv[s[i]];
     97             int t = 6 - __builtin_popcount(p);
     98             ret = (ret * quickmul(3, t)) % mod;
     99         }
    100         printf("I64d
    ", ret);
    101     }
    102     RT 0;
    103 }
  • 相关阅读:
    day 66 crm(3) 自创组件stark界面展示数据
    day 65 crm(2) admin源码解析,以及简单的仿造admin组件
    用 Python+nginx+django 打造在线家庭影院
    django -admin 源码解析
    day 64 crm项目(1) admin组件的初识别以及应用
    云链接 接口不允许 情况 解决方法 mysql Host is not allowed to connect to this MySQL server解决方法
    day 56 linux的安装python3 ,虚拟环境,mysql ,redis
    day55 linux 基础以及系统优化
    Codeforces 989 P循环节01构造 ABCD连通块构造 思维对云遮月参考系坐标轴转换
    Codeforces 990 调和级数路灯贪心暴力 DFS生成树两子树差调水 GCD树连通块暴力
  • 原文地址:https://www.cnblogs.com/kirai/p/5555990.html
Copyright © 2011-2022 走看看