SRM467-创新互联

250pt:SRM467

   一个学生等老师来上课的,但是他不知道老师啥时候会来的,然后他等waiting时间后觉得无聊就会出去转walking时间,回来等待waiting时间后老师没来就会再次出去。老师会在a...b区间时间任意时刻来,是等概率的。但是老师等t时间后,就会不会让你进来了的。让你求你进不去教室的概率是多少。(所有的数<= 1000W)

十多年建站经验, 网站设计、网站制作客户的见证与正确选择。成都创新互联提供完善的营销型网页建站明细报价表。后期开发更加便捷高效,我们致力于追求更美、更快、更规范。

思路:因为小于1000w,所以我就暴力把每一分钟的状态都统计出来。

   注意长度为0的情况即可(比如老师即到即走的情况)举要特判

#line 7 "LateProfessor.cpp"
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;

#define PB push_back
#define MP make_pair

#define REP(i,n) for(i=0;i<(n);++i)
#define FOR(i,l,h) for(i=(l);i<=(h);++i)
#define FORD(i,h,l) for(i=(h);i>=(l);--i)

typedef vector VI;
typedef vector VS;
typedef vector VD;
typedeflong long LL;
typedef pair PII;


class LateProfessor
{
public:
double getProbability(int wait, int walk, int late, int st, int end)
        {
double sum = (end - st);
int m = wait + walk;
double ans = 0;
//  int last = -1, len = 0;   if (st == end){
if (st % m <= wait || (st % m > wait && st % m + late > m)) return 0.0;
return 1.0;       
              }
for (int i = st; i < end; ++i){
if (i % m < wait || (i % m >= wait && i % m + late >= m)) ++ans;
              }
return 1 - ans / sum;
        }

};
View Code

500pt:

给定supersum定义如下

SuperSum(0 , n) = n, for all positive n. SuperSum(k , n) = SuperSum(k-1 , 1) + SuperSum(k-1 , 2) + ... + SuperSum(k-1 , n), for all positive k, n.

给定k,n(k <= 50, n <= 10^9),求supersum(k,n)

思路:乍一看不会做,然后就打了个20*20的表,发现斜着看就是一个杨辉三角,然后直接算可以了

     答案就是C(n + k, k + 1)

 1 #line 7 "SuperSum.cpp"
 2 #include 
 3 #include 
 4 #include 
 5 #include 
 6 #include 
 7 #include 
 8 #include 
 9 #include 
10 #include 
11 #include 
12 #include 
13 #include 
14 #include 
15 #include 
16 #include 
17 #include 
18 #include 
19 #include 
20 #include 
21 #include 
22 #include 
23 #include 
24 #include 
25 using namespace std;
26 
27 #define PB push_back
28 #define MP make_pair
29 
30 #define REP(i,n) for(i=0;i<(n);++i)
31 #define FOR(i,l,h) for(i=(l);i<=(h);++i)
32 #define FORD(i,h,l) for(i=(h);i>=(l);--i)
33 #define M 1000000007
34 typedef vector VI;
35 typedef vector VS;
36 typedef vector VD;
37 typedef long long LL;
38 typedef pair PII;
39 
40 class SuperSum
41 {
42 public:
43 long long power(long long a, long long b){
44   long long ret = 1;
45   while (b){
46 if (b&1) ret = (ret * a) % M;
47                  b >>= 1;
48                  a = (a * a) % M;
49              }
50   return ret;
51         }
52 long long C(int n, int m){
53   long long ret = 1;
54   for (int i = 1; i <= m; ++i){
55                  ret = (ret * power(i, M - 2)) % M;
56                  ret = (ret * (n - i + 1)) % M;
57              }
58   return ret;
59         }
60 int calculate(int K, int N)
61         {
62   int n = K + N;
63   int m = K + 1;
64   return C(n, m);
65         }
66 
67 };
View Code
当前题目:SRM467-创新互联
网站地址:http://azwzsj.com/article/icpgc.html