zoukankan      html  css  js  c++  java
  • 【心得体会】11.30-12.6

    Tips

    1、对于有精度要求的题目,注意判断ESP=1e-5,以免出错

    总结

    1、基础的贪心DP和搜索题要巩固,争取细节不出错,快速出题。

    2、加强博弈论的学习。

    本周题单

    USACO

    USACO Training 2.1.4 Healthy Holsteins

    简单搜索

    训练赛补题

    Ray Tracing(CF)

    题解链接:(补)

    2020年广东工业大学第十届文远知行杯新生程序设计竞赛(补题)

    A、肥猪的钢琴床

    题目链接:https://ac.nowcoder.com/acm/contest/9692/A

    dp,

    a[i]==0
    f[i][0]=min(f[i-1][0],f[i-1][1]);
    f[i][1]=min(f[i-1][1],f[i-1][2])+1;
    f[i][2]=f[i-1][2];
    a[i]==1
    f[i][0]=min(f[i-1][0],f[i-1][1])+1;
    f[i][1]=min(f[i-1][1],f[i-1][2]);
    f[i][2]=f[i-1][2]+1;
    

    F、合并石子

    题目链接:https://ac.nowcoder.com/acm/contest/9692/F

    一共有 n堆石子,故合并时产生 (n-1)!种情况;
    第 i次合并时共有n+1−i堆石子,故选取两堆的期望和为 2n/(n+1−i)
    故消耗体力总和为 (n-1)!*(2n/2+2n/3+...+2n/n)

    #include <bits/stdc++.h>
    using namespace std;
    typedef long long ll;
    #define M 1000000007
    
    ll ksm(ll a,ll p){
        ll res=1;
        while(p){if(p&1){res=res*a%M;}a=a*a%M;p>>=1;}return res;
    }
    
    int i;
    ll n,res,tmp;
    
    int main(){
        scanf("%d",&n);
        for(i=2;i<=n;i++){
            res+=ksm(i,M-2)*n%M;
        }
        for(i=1;i<=n-1;i++){
            res=res*i%M;
        }
        printf("%lld",res*2%M);
    }
    

    C、母牛的俄罗斯轮盘赌

    题目链接:https://ac.nowcoder.com/acm/contest/9692/C

    思路:类似巴士博弈的思路,我们可以想到(想不到)第k枪和第k+5枪的结果是一样的,故只要计算出前五枪的结果就好。

    #include <bits/stdc++.h>
    #define ll long long
    #define ull unsigned long long
    using namespace std;
    inline int read(){
    	int f=0,num;
    	char ch;
    	while(ch=getchar(),!isdigit(ch))if(ch=='-')f=1;num=ch-'0';
    	while(ch=getchar(), isdigit(ch))num=num*10+ch-'0';
    	return f?-num:num;
    }
    int t;
    ll n; 
    int main(){
    	cin>>t;
    	while(t--){
    		cin>>n;
    		if(n==1||n==3||n==4)cout<<"Pig"<<endl; 
    		else if(n==2)cout<<"Cow"<<endl;
    		else if((n-1)%5==0||(n-3)%5==0||(n-4)%5==0) cout<<"Pig"<<endl; 
    		else if((n-2)%5)cout<<"Cow"<<endl;
    		else if(n%5==0) cout<<"Pig"<<endl; 
    		else cout<<"Cow"<<endl;	
    	}
    	return 0;
    }
    
    
  • 相关阅读:
    【Android进阶】关于PagerAdapter的使用方法的总结
    不容易系列之(4)——考新郎
    阿牛的EOF牛肉串
    Number Sequence
    盐水的故事
    Digital Roots
    密码 hdu
    不容易系列之(3)—— LELE的RPG难题
    冒泡排序----java实现
    不容易系列之一
  • 原文地址:https://www.cnblogs.com/Shayndel/p/14104059.html
Copyright © 2011-2022 走看看