Experimental Educational Round: VolBIT Formulas Blitz

cf的一次数学场。。。

递推 C

题意:长度<=n的数只含有7或8的个数

分析:每一位都有2种可能,累加不同长度的方案数就是总方案数

组合 G

题意:将5个苹果和3个梨放进n个不同的盒子里的方案数。

分析:经典的组合题目:C(n+5-1, 5) * C(n+3-1, 3)。因为可以同一个盒子放多个苹果或梨,在n基础上多k-1个,看成每个盒子放一个。

组合 H

题意:将5个车放在n*n的棋盘上的方案数。

分析:也是经典的题目,先选行,再全排列,即C (n, 5) * A (n, 5)。

枚举 I

题意:有4种车和2*n-2个停车位,要求必须连续停n辆同种类的车,问将所有车位停满的方案数。

分析:枚举停n辆同种类车的起点,统计就好了。注意,n俩相邻的方案是3,其余是4。

数学 J

题意:问1-n里面能够被2-10全部整除的数有多少个?

分析:lcm(2, ... 10) = 2520。ans = n / lcm。

数学 K

题意:问1-n里面 能够不被[2, 10]里面任意一个数整除的数 有多少个?

分析:J题的变形,经典的容斥题目。容斥原理

import java.io.*;
import java.util.*; public class Main {
public static void main(String[] args) {
new Main ().run ();
}
void run() {
Scanner cin = new Scanner (new BufferedInputStream (System.in));
long n = cin.nextLong ();
long ans = n - n / 2 - n / 3 - n / 5 - n / 7;
ans = ans + n/(2*3) + n/(2*5) + n/(2*7) + n/(3*5) + n/(3*7) + n/(5*7);
ans = ans - n/(2*3*5) - n/(2*3*7) - n/(2*5*7) - n/(3*5*7);
ans = ans + n / (2 * 3 * 5 * 7);
System.out.println (ans);
}
}

数学 P

题意:问你n角形的面积。

分析:角度已知,只要算出蓝线占直线的比例,就能算出面积。

Experimental Educational Round: VolBIT Formulas Blitz

#include <bits/stdc++.h>

const double PI = acos (-1.0);

int main(void)  {
int n;
double r;
scanf ("%d%lf", &n, &r);
double a = 2 * PI / n;
double ans = 0.5 * n * r * r * sin (a) * sin (a/4) / (cos (a/2) * sin (PI - a*3/4));
printf ("%.10f\n", ans); return 0;
}

  

上一篇:(中等) HDU 4725 The Shortest Path in Nya Graph,Dijkstra+加点。


下一篇:Android中事件传递机制的总结