题目传送门

 1 /*
 2     题意:每一次任选i,j行字符串进行任意长度前缀交换,然后不断重复这个过程,问在过程中,第一行字符串不同的个数
 3     组合数学题:每一列不同的字母都有可能到第一行,所以每列的可能值相乘取模就行了。这题主要坑在题意理解上。。。
 4 */
 5 #include <cstdio>
 6 #include <algorithm>
 7 #include <cstring>
 8 #include <cmath>
 9 #include <map>
10 using namespace std;
11
12 typedef long long ll;
13 const int MAXN = 1e2 + 10;
14 const int INF = 0x3f3f3f3f;
15 const int MOD = 1e9 + 7;
16 char s[MAXN][MAXN];
17 int a[MAXN];
18 map<char, int> cnt[MAXN];
19
20 int main(void)        //Codeforces Round #108 (Div. 2) C. Pocket Book
21 {
22 //    freopen ("D.in", "r", stdin);
23
24     int n, m;
25     while (scanf ("%d%d", &n, &m) == 2)
26     {
27         memset (a, 0, sizeof (a));
28         for (int i=1; i<=m; ++i)    cnt[i].clear ();
29         scanf ("%s", s[1] + 1);
30         for (int i=2; i<=n; ++i)
31         {
32             scanf ("%s", s[i] + 1);
33         }
34
35         for (int j=1; j<=m; ++j)
36         {
37             for (int i=1; i<=n; ++i)
38             {
39                 if (cnt[j][s[i][j]] == 0)
40                 {
41                     cnt[j][s[i][j]] = 1;    a[j]++;
42                 }
43             }
44         }
45
46         ll ans = 1;
47         for (int i=1; i<=m; ++i)
48         {
49             ans = (ans * a[i]) % MOD;
50         }
51         printf ("%I64d\n", ans);
52     }
53
54     return 0;
55 }

转载于:https://www.cnblogs.com/Running-Time/p/4656720.html

组合数学题 Codeforces Round #108 (Div. 2) C. Pocket Book相关推荐

  1. Codeforces Round #108 (Div. 2)

    Codeforces Round #108 (Div. 2) C. Pocket Book 题意 给定\(N(N \le 100)\)个字符串,每个字符串长为\(M(M \le 100)\). 每次选 ...

  2. 组合计数 ---- Codeforces Round #370 (Div. 2)D. Memory and Scores[dp]

    题目大意:Memory 和 Lexa分别取数,取ttt轮,每一轮取的数字的范围为[−k,k][−k,k][−k,k],并且将取的数字加他们的得分,问有多少种方案Memory的得分严格大于Lexa.Me ...

  3. Educational Codeforces Round 108 (Rated for Div. 2)-B. The Cake Is a Lie-题解

    目录 Educational Codeforces Round 108 (Rated for Div. 2)-B. The Cake Is a Lie Problem Description Inpu ...

  4. Codeforces Round #630 (Div. 2) E. Height All the Same 排列组合

    传送门 文章目录 题意: 思路: 题意: 思路: 由于n,mn,mn,m都很大,不难猜到这是一个公式题. 首先化简题目中的两个操作,第二个操作就是可以让奇偶性相同的位置的高度相同.第一个操作虽然是改变 ...

  5. Codeforces Round #747 (Div. 2)题解

    Codeforces Round #747 (Div. 2)题解 (本博客将持续更新以后每场CF div2的题解,喜欢ACM.OI的小伙伴记得点个关注哟) 昨天夜晚刷网络流刷入迷了,渐渐就忘记了我还要 ...

  6. Codeforces Round #433(Div. 2) D. Jury Meeting(贪心)

    题目链接:Codeforces Round #433(Div. 2) D. Jury Meeting 题意: 有n个城市,每个城市有一个人,现在要让这些人来0号城市在一起k天,然后回去. 现在有m个日 ...

  7. Codeforces Round #653 (Div. 3)(A, B, C, D, E1详解)

    Codeforces Round #653 (Div. 3) Required Remainder Thinking(binary search) 既然是找最大值问题,我又懒得去推式子,于是我直接就上 ...

  8. Codeforces Round #643 (Div. 2)(A, B, C, D, E)

    Codeforces Round #643 (Div. 2) Sequence with Digits 思路 一道暴力题,猜想在某一步一定会出现0,于是怀着忐忑提交了代码,结果还真的是这样. 代码 # ...

  9. Codeforces Round #225 (Div. 1) E. Vowels 容斥 + sosdp

    传送门 文章目录 题意: 思路: 题意: 给你nnn个长度为333的串,串的每个字母都在a−za-za−z范围内,定义一个串合法当且仅当这个串中含有至少一个元音字母.现在他忘记了元音字母都有那几个,显 ...

最新文章

  1. java语言中数值自动转换的优先顺序
  2. Cisco IOS的故障恢复方法
  3. wpf prism IRegionManager 和IRegionViewRegistry
  4. FZU 2214 Knapsack problem(背包问题)
  5. 6条策略提高mysql查询速度 潇湘博客
  6. 使用Mocks进行需求驱动的软件开发
  7. ExtJs2.0学习系列(5)--Ext.FormPanel之第二式
  8. Nginx Unit 1.8.0 发布,动态 Web 应用服务器
  9. 使用TortoiseSVN下载source force的源代码
  10. .net core读取appsettings.json配置信息、自定义json文件、自定义xml文件
  11. 颜值大比拼,用数据告诉你中国哪里美女多?
  12. word2010公式编辑器 格式设置
  13. Android JVM和DVM的区别
  14. proftpd ldap mysql_安装proftpd+ldap报错
  15. COGNOS安装笔记
  16. 计算机二级C语言中isdigit,C使用带字符串的标准算法,带有isdigit的count_if,函数转换...
  17. win7卸载mcafee
  18. 基于JavaWeb的校友录同学录管理系统
  19. 水墨简静态PPT模板
  20. LeetCode78-子集

热门文章

  1. python 安卓模拟点击_python模拟点击在ios中实现的实例讲解
  2. cppunit linux,Linux中使用CppUnit工具
  3. java文件上传_Java文件上传细讲
  4. 野火linux核心板原理图,野火_f429挑战者_核心板_原理图_v2 1.pdf
  5. 自动化测试框架cucumber_基于Cucumber和Testng的WebUI自动化测试方法与流程
  6. 人工智能助力全国大学智能车竞赛
  7. 第16届智能车竞赛参赛队员提问-05-24
  8. java 反射遍历_java使用反射遍历类的字段
  9. oracle数据库中insert,【Oracle】sql插入之 insert all、insert first
  10. mysql myasam_MySQL锁(MyISAM和InnoDB)