zoukankan      html  css  js  c++  java
  • USACO Feb. 2012

    Moo

    找规律 吧

    第一个是很久以前自己写的递归

    #include<stdio.h>
    __int64 n;
    __int64 dfs(__int64 l,__int64 r,__int64 k)
    {
    	//printf("%I64d %I64d
    ",l,r);
    	//	return 1;
    	__int64 kk = (r - k - 3)/2,temp;
    	if(n>kk&&n<=kk+k+3)
    	{
    		//printf("%I64d %I64d
    ",n,kk);
    		if(n==kk+1)
    			return 1;
    		else
    			return 0;
    	}
    	else if(n<=kk)
    	{
    		temp = dfs(1,1+kk-1,k-1);
    	}
    	else if(n>kk+k+3)
    	{
    		n=n-(r-kk);
    		temp = dfs(1,1+kk-1,k-1);
    	}
    	return temp;
    }
    int main()
    {
    	__int64 r=3,count=0;
    	scanf("%I64d",&n);
    	while(n>r)
    	{
    		r = r*2 + count + 4;
    		count++;
    	}
    	if(dfs(1,r,count))
    		printf("m
    ");
    	else
    		printf("o
    ");
    	return 0;
    }
    
    


     

    Overplanting

    Cow IDs

    居然1A好开心

    枚举第一个1在i位 i+1位 i+2位 。。。 那么有 C(i-1,k-1) + C(i,k-1)+C(i+1,k-1)。。。种 直到大于n

    那么第1个1就确定了

    然后重复以上步骤 确定第2个 第三个1。。

    #include <stdio.h>
    int C(int n,int m)
    {
    	int ret = 1,i;
    	for(i = 1;i <= m; i++)
    	{
    		ret *= n--;
    		ret /= i;
    	}
    	return ret;
    }
    int main()
    {
    	int a[13],len = 0;
    	int n,m,k,i,j,sum = 0;
    	scanf("%d %d",&n,&k);
    	while(n)
    	{
    		sum = 0;
    		m = k - 1;
    		if(k == 1)
    		{
    			a[len++] = n;
    			break;
    		}
    		for(i = m; ; i++)
    		{
    			int temp = C(i,m);
    			if(sum + temp < n)
    				sum += temp;
    			else
    			{
    				n -= sum;
    				a[len++] = i + 1;
    				k--;
    				break;
    			}
    		}
    	}
    	a[len] = 0;
    	for(i = 1;i <= len; i++)
    	{
    		printf("1");
    		int temp = a[i-1] - a[i];
    		for(j = 1;j < temp; j++)
    			printf("0");
    		//printf("1");
    	}
    	puts("");
    	return 0;
    }


     

  • 相关阅读:
    [算法] 网络中最小费用最大流
    [题解] 完美数
    [算法] 扫描线及其应用
    等待时间
    键盘操作
    鼠标操作
    元素常用操作
    元素的定位·CSS
    元素的定位·XPATH
    元素的定位
  • 原文地址:https://www.cnblogs.com/fuhaots2009/p/3433100.html
Copyright © 2011-2022 走看看