首页 > 代码库 > Google Round B APAC Test
Google Round B APAC Test
A:题意密码由n不同的字符和m的长度组成,问你有多少种情况
解题思路:可以得到状态转移方程为 dp[i][j] = dp[i-1][j]*j + dp[i-1][j-1]*(n-j+1);
解题代码:
1 // File Name: a.cpp 2 // Author: darkdream 3 // Created Time: 2014年09月15日 星期一 14时29分39秒 4 5 #include<vector> 6 #include<list> 7 #include<map> 8 #include<set> 9 #include<deque>10 #include<stack>11 #include<bitset>12 #include<algorithm>13 #include<functional>14 #include<numeric>15 #include<utility>16 #include<sstream>17 #include<iostream>18 #include<iomanip>19 #include<cstdio>20 #include<cmath>21 #include<cstdlib>22 #include<cstring>23 #include<ctime>24 #define LL long long25 26 using namespace std;27 LL dp[200][200];28 #define M 100000000729 int main(){30 freopen("out","w",stdout);31 int t; 32 scanf("%d",&t);33 for(int ca = 1; ca <= t; ca ++)34 {35 int n , m ;36 scanf("%d %d",&n,&m);37 memset(dp,0,sizeof(dp));38 dp[1][1] = n; 39 for(int i = 2;i <= m;i ++)40 {41 for(int j = 1;j <= n;j ++)42 dp[i][j] = (dp[i-1][j] *j)%M + dp[i-1][j-1]*(n-j+1)%M ;43 }44 printf("Case #%d: %lld\n",ca,dp[m][n]%M); 45 }46 return 0;47 }
Google Round B APAC Test
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。