摘要:
题意:求出2000以内的斐波那契数思路:大数相加Tips:---Code:View Code 1 #include <stdio.h> 2 #include <cstring> 3 4 int f[1010][220]; 5 int main() 6 { 7 int i, j; 8 int n, T; 9 int tmp, ttmp;10 f[1][0] = f[2][0] = 1;11 for(i = 3; i < 1010; ++i){12 for(j = 0; j <= 210; ++j)13 f[i][... 阅读全文
摘要:
题意:有m个人拿50 n个人拿100 前台没零钱..问多少种合法的排队方法思路:网上摘录:假设m=4,n=3,的一个序列是:0110100显然,它不合法然后我们把他稍微变化一下:把第一个不合法的“1”后面的所有数0位为1, 1位为0;这样我们得到了另一个序列:0111011,说明每个不合法的都有一个这样的序列跟他一一对应所以计算公式就是:合法的排列方式=所有排列方式-非法排列方式这里非法排列方式的计算 就是:(-)*M!*N!然而在这题,因为每个人都是不同的,所以还要乘以 M!*N!所以得出最终方程:F(N)=(-)*M!*N! ;然后再化简一下;F(N)=(M+N)! * (M-N+1)/( 阅读全文
摘要:
题意:有k个挤奶器,c头牛..每个挤奶器和每头牛之间都有特定的距离..k个挤奶器的位置用1~k的编号表示..奶牛的位置用k+1~k+c表示每个挤奶器每天最多为m头牛挤奶..求安排每头牛到挤奶器前的最大距离的最小值..思路:先用floyd求出每头牛到每台挤奶器的最短距离..然后用二分判断最大距离最小值是多少..check()函数就是根据按距离建图后这个网络流的最大流==牛的头数其中建图先建一个超级源点..作为每头牛的前驱..他们的流量为1..然后建一个超级汇点..作为每台挤奶器的后继..他们的流量为m..如果由floyd求出的最短距离 >= 二分假设的最大距离最小值x..就连线..然后根据 阅读全文