藍橋杯訓練----高精度除高精度,漢諾塔,合唱隊形

也許,年少時不能遇見太過驚豔的人,就像你不能做我的詩,而我無法成爲你的夢!

投機取巧

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <string>
#include <cstring>
#include <cstdlib>
#include <cmath>
#include <stack>
#include <queue>
#include <set>
#include <map>
#include <vector>
#include <ctime>
#include <cctype>
#include <bitset>
#include <utility>
#include <sstream>
#include <complex>
#include <iomanip>
#define inf 0x3f3f3f3f
typedef long long ll;
using namespace std;
double a,b;
int main(){
	cin>>a>>b;
	double c=a/b; 
	printf("%.f",floor(c));
	return 0;
} 

 

 

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <string>
#include <cstring>
#include <cstdlib>
#include <cmath>
#include <stack>
#include <queue>
#include <set>
#include <map>
#include <vector>
#include <ctime>
#include <cctype>
#include <bitset>
#include <utility>
#include <sstream>
#include <complex>
#include <iomanip>
#define inf 0x3f3f3f3f
typedef long long ll;
using namespace std;
int n,m,ct;
void hanoi(int n,char A,char B,char C)
{

    if(n<=1) {
        ct++;
        if(ct==m)
            printf("#1: %c->%c\n",A,C);
        return ;
    }
    hanoi(n-1,A,C,B);
    ct++;
    if(ct==m)
         printf("#%d: %c->%c\n",n,A,C);
    hanoi(n-1,B,A,C);
}
int main(){
    cin>>n>>m;
    hanoi(n,'A','B','C') ;
    cout<<(1<<n)-1<<endl;
    return 0;
}

 

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <string>
#include <cstring>
#include <cstdlib>
#include <cmath>
#include <stack>
#include <queue>
#include <set>
#include <map>
#include <vector>
#include <ctime>
#include <cctype>
#include <bitset>
#include <utility>
#include <sstream>
#include <complex>
#include <iomanip>
#define inf 0x3f3f3f3f
typedef long long ll;
using namespace std;
int N,dp1[200],dp2[200],n[200],jg=1;
int main(){
    cin>>N;
    for(int i=1;i<=N;i++)
        cin>>n[i];
    for(int i=1;i<=N;i++){
        int mx=1;
        for(int j=1;j<i;j++){
            if(n[j]<n[i]){
                if(dp1[j]+1>mx)
                    mx=dp1[j]+1;
            }
        }
        dp1[i]=mx;
    }
    for(int i=N;i>=1;i--){
        int mx=1;
        for(int j=N;j>i;j--){
            if(n[j]<n[i]){
                if(dp2[j]+1>mx)
                    mx=dp2[j]+1;
            }
        }
        dp2[i]=mx;
    }
    for(int i=1;i<=N;i++){
        for(int j=i+1;j<=N;j++){
            if(dp1[i]+dp2[j]>jg)
                jg=dp1[i]+dp2[j];
        }
    }
    cout<<N-jg<<endl;
    return 0;
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章