CodeChef SIGNWAVE (打表找规律)

题意:

给你两个函数 ai sin(2^i x), 0 ≤ x ≤ 2π, for i = 0, 1, …, S1, bj cos(2^j x), 0 ≤ x ≤ 2π, for j = 0, 1, …, C1, 现在题目给出 S,C,K 问你,存在多少个点使得,至少有K个函数穿过。

解析:

为什么写这题呢,是因为想让自己记住,当实在想不出怎么做的时候可以,暴力打表找规律。 这题的做法是写了一个暴力程序,让后根据这个程序打出的表找到规律。

AC代码

;ll;const int N = 52;ll dp[N];void init() {memset(dp, 0, sizeof(dp));dp[0] = 3;for(int i = 1; i < N; i++)dp[i] = dp[i-1] * 2 – 1;}ll solve(int S, int C, int K) {if(K == 1 && S != 0) {if(C <= S – K)return dp[S – K];elsereturn dp[C];}else if(S == 0) {if(K == 1)return (dp[C] – 3);;}else if(S – K < 0) {return 0;}else if(C <= S – K) {return dp[S – K];}else {return dp[S – K + 1];}}int main() {init();int S, C, K;int T;scanf(“%d”, &T);while(T–) {scanf(“%d%d%d”, &S, &C, &K);printf(“%lld\n”, solve(S,C,K));}return 0;}

,人,都有不能称心如意的时候,都有愿望落空的窘迫,

CodeChef SIGNWAVE (打表找规律)

相关文章:

你感兴趣的文章:

标签云: