SRM466-创新互联

250pt:SRM466

   给出一个数n(n <= 10^10),问至少修改几位能使其变成完全平方数。

创新互联公司是一家专业的成都网站建设公司,我们专注做网站、成都网站建设、网络营销、企业网站建设,外链一元广告为企业客户提供一站式建站解决方案,能带给客户新的互联网理念。从网站结构的规划UI设计到用户体验提高,创新互联力求做到尽善尽美。思路:  直接枚举平方根,然后统计。  注意枚举时要枚举到比她大。。
 1 #line 7 "LotteryCheating.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 
34 typedef vector VI;
35 typedef vector VS;
36 typedef vector VD;
37 typedef long long LL;
38 typedef pair PII;
39 
40 
41 class LotteryCheating
42 {
43 public:
44 int bit[20], L = 0;
45 int work(long long x){
46   int ret = 0;
47   for (int i = 0; i < L + 1; ++i){
48   if (x % 10 != bit[i]) ++ret;
49                    x /= 10;
50              }  
51   return ret;
52         }
53 int minimalChange(string ID)
54         {
55  int sz = ID.size();
56                L = sz;
57                memset(bit, 0, sizeof(bit)); 
58  long long n = 0;
59  for (int i = 0; i < sz; ++i)
60                   n = n * 10 + ID[i] - 48, bit[sz-i-1] = ID[i] - 48;
61  int ans = 100;
62  for (long long i = 0; i * i <= n * 10; ++i)
63                   ans = min(work(i * i), ans);
64  return ans;   
65           
66         }
67         
68 
69 };
View Code500pt:   彩票上有N行5列的格子,其中有1-5*N的排列。抽奖会抽出5个数来,如果彩票上一行有超过三个抽出的数则中奖。问彩票中奖概率。思路:   直接枚举中奖的情形,那么有可能是3行 2行,1行。   对于3行,只有可能是3+1+1,   对于2行,4 + 1   对于1行,5  其他全排列即可
 1 #line 7 "LotteryPyaterochka.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 
34 typedef vector VI;
35 typedef vector VS;
36 typedef vector VD;
37 typedef long long LL;
38 typedef pair PII;
39 
40 
41 class LotteryPyaterochka
42 {
43 public:
44 double C(int n, int m){
45 double ret = 1.0;
46 for (int i = 1; i <= m; ++i)
47                  ret *= (n - i + 1.0) / (i + .0);
48 return ret;
49         }
50 double A(int n, int m){
51 double ret = 1.0;
52 for (int i = 1; i <= m; ++i)
53                  ret *= (n - i + 1.0);
54 return ret;
55         }
56 double chanceToWin(int N)
57         {
58 if (N <= 2) return 1.0;
59 double ans = 0;
60               ans += C(N, 1) * C(N - 1, 2) * C(5, 3) * C(5, 1) * C(5, 1) * A(5, 5);
61               ans += C(N, 1) * C(N - 1, 1) * C(5, 3) * C(5, 2) * A(5, 5);
62               ans += C(N, 1) * C(N - 1, 1) * C(5, 4) * C(5, 1) * A(5, 5); 
63               ans += C(N, 1) * A(5, 5);
64               cout << ans << endl;
65 for (int i = 0; i < 5; ++i)
66                  ans /= (5 * N - i + .0);
67 return ans;  
68         }
69 
70 };
View Code
网站栏目:SRM466-创新互联
URL地址:http://pwwzsj.com/article/djopgi.html