思考过程
简单概率题,没有什么难点。 源代码
#include<stdio.h>
#include<math.h>
int main()
{
int t, n, i;
double p;
scanf("%d", &t);
while (t--)
{
scanf("%d%lf%d", &n, &p, &i);
printf("%.4f\n", p == 0 ? p : p * pow(1 - p, i - 1) / (1 - pow(1 - p, n)));
}
return 0;
} 遇到问题
无。 G题 Burger
思考过程
概率题,需要一个反向思维,有点难想,但听了讲解后挺容易理解的。 源代码
#include<stdio.h>
#include<string.h>
typedef long long LL;
double dp;
void init()
{
dp=1.0;
for(int i=4;i<100100;i+=2)
dp=dp*(i-3)/(i-2);
}
int main()
{
int n,x;
scanf("%d",&n);
init();
while(n--)
{
scanf("%d",&x);
printf("%.4f\n",1.0-dp);
}
} 遇到问题
反向思考不一定能想到 H题 Coin Toss
思考过程
一开始没啥思路,但看了一个讲解,只要考虑全面,分号类,就没有那么难了。 源代码
#include <stdio.h>
#include <math.h>
int main()
{
const double PI=acos(-1.0);
double area;
double n,m,t,c;
int cas,i,j;
double d11,d12,d13,d21,d22;
scanf("%d",&cas);
for(i=1;i<=cas;i++)
{
scanf("%lf%lf%lf%lf",&n,&m,&t,&c);
d11=(t-c/2)*(t-c/2)*4;
d12=(t-c/2)*(t-c)*(n+m-4)*2;
d13=(t-c)*(t-c)*(n*m-(2*(n+m)-4));
d21=c*(t-c/2)*((m-1)*2+(n-1)*2);
d22=c*(t-c)*((m-1)*n+(n-1)*m-(m-1)*2-(n-1)*2);
area=t*t*n*m;
area=d11+d12+d13;
area=d21+d22;
area=(c*c-PI*(c/2)*(c/2))*(n-1)*(m-1);
area=PI*c*c/4*(n-1)*(m-1);
printf("Case %d:\n",i);
for(j=1;j<=4;j++)
{
if(j==1)
printf("Probability of covering %d tile= %.4lf%%\n",j,area/area*100);
else
printf("Probability of covering %d tiles = %.4lf%%\n",j,area/area*100);
}
printf("\n");
}
return 0;
} 遇到问题
此题属于高中的数学题,基本忘得差不多了。 I题 498-bis 思考过程
不会做。 源代码
#include<cstdio>
#include<cmath>
using namespace std;
int main() {
int x, a;
char c;
while(~scanf("%d", &x)) {
int sum = 0;
int ans = 0;
while(~scanf("%d", &a)) {
ans = ans * x + sum;
sum = sum * x + a;
scanf("%c", &c);
if(c == '\n') break;
}
printf("%d\n", ans);
}
return 0;
} 遇到问题
不会做(⊙﹏⊙)。 收获:
1.C++到C的流畅转换
2.欧几里得算法及扩展
3.对高中知识进行了一定的回忆
4.知道了还有差分序列这个东西 感觉很高深的样子,没有看明白。
页:
1
[2]