
分治
acm_JL
这个作者很懒,什么都没留下…
展开
-
循环赛日程表
问题描述: 设有n=2^k个运动员要进行网球循环赛。现要设计一个满足以下要求的比赛日程表: (1)每个选手必须与其他n-1个选手各赛一次; (2)每个选手一天只能参赛一次; (3)循环赛在n-1天内结束。 请按此要求将比赛日程表设计成有n行和n-1列的一个表。在表中的第i行,第j列处填入第i个选手在第j天所遇到的选手。其中1≤i原创 2016-03-20 00:13:18 · 8144 阅读 · 0 评论 -
棋盘覆盖问题
//棋盘覆盖问题/*(tr,tc)是棋盘左上角的方格坐标(dr,dc)是特殊方格所在的坐标size是棋盘的行数和列数 */ #includeusing namespace std;int board[1025][1025];static int tile = 1;void ChessBoard(int tr,int tc,int dr,int dc,int size){原创 2016-03-20 20:34:26 · 17596 阅读 · 13 评论 -
寻找第k小的数字
算法分析:记一趟快速排序后,分解出左子集中元素个数为nleft(1)nleft=k-1,则分界数据就是答案(2)nleft>k-1,则选择问题的答案在左子集中寻找(3)nleft#include using namespace std;#define NUM 1001int a[NUM];//在a[left]~a[right]中寻找第k小的数 int select(int l原创 2016-03-20 21:16:43 · 1217 阅读 · 0 评论 -
整数因子分解
#include int total;void solve(int n) { if (n==1) total++; else for (int i=2; i<=n; i++) if (n%i==0) solve(n/i);//对每一因子进行递归搜索}int main() { int n; while(scanf("%d",&n)!=EOF) { total = 0原创 2016-03-20 21:44:18 · 923 阅读 · 0 评论 -
取余运算
题目:输入三个正整数a,p,k,求a(p)%k;算法分析:由于数据规模很大,如果直接计算,不仅需要采用高精度而且时间复杂度很大。已知模运算有如下规则:(a*b)%n=(a%n*b%n)%n a(b)%n=((a%n)(b))%n,因此得到如下的递推公式:#includeusing namespace std;int mod(long long a, lo原创 2016-03-20 21:58:13 · 2783 阅读 · 0 评论