藍橋杯練習----Glenbow Museum,二進制數數,國王的煩惱

我從前最怕旁人火眼金睛,如今,倒是盼着有人能夠洞幽燭遠。如此,就能贈我一點歡喜。

#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
#define P pair<int,int>
typedef long long ll;
using namespace std;
const ll MOD=1e9+7;
ll dp[1010][5][2], ans[1010];
void init(){
    for (int s=0; s<2; s++) {
        dp[1][0][s]=1;
        for (int i=2; i<1010; i++) {
            for (int j=0; j<=4; j++) {
                dp[i][j][s]=dp[i-1][j][s];
                if (j)
                    dp[i][j][s]+=dp[i-1][j-1][s];
            }
        }
    }
    memset(ans,0,sizeof(ans));
    for (int i=1; i<1010; i++) {
        if (i<4||(i&1))
            continue;
        int t=(i+4)/2;
        ans[i]=dp[t][3][0]+dp[t][4][1]+dp[t][4][0];
    }
}
int main () {
    init();
    int n,ct=1;
    while (scanf("%d", &n)==1&&n!=0){
        printf("Case %d: %lld\n", ct++, ans[n]);
    }
    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
#define P pair<int,int>
typedef long long ll;
using namespace std;
const ll MOD=1e9+7;
#include<iostream>
using namespace std;
int cj(int n)
{
    int i,k=0;  //k爲1的個數
    i=n;
    while(i)
    {
        if(i%2==1) 
			k++;
        i=i/2;
    }
    return k;
}
int main()
{
	int a,b,i,rs=0;
    cin>>a>>b;
    for(i=a;i<=b;i++)
        rs+=cj(i);
    cout<<rs<<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 0x7ffffff
#define P pair<int,int>
typedef long long ll;
using namespace std;
const ll MOD=1e9+7;
struct Node
{
    int x,y,day;
}p[100010];
int n,m,fa[100010];
bool cmp(Node a,Node b)
{
    return a.day>b.day;
}
int fd(int x)
{
   return fa[x]==x ? x : fa[x] = fd(fa[x]);
}
int main()
{
    cin>>n>>m;
    for(int i=1;i<=m;i++)
    	cin>>p[i].x>>p[i].y>>p[i].day; 
    sort(p+1,p+1+m,cmp);
    for(int i=1;i<=n;i++) 
		fa[i]=i;
    int ans=0,pre=0;
    for(int i=1;i<=m;i++)
    {
    	int x=fd(p[i].x);
    	int y=fd(p[i].y);
    	if(x!=y)
    	{
        	fa[x]=y;
        	if(p[i].day!=pre)
        	{
        		ans++;
        		pre=p[i].day;
			}
    	}          
    }
    cout<<ans<<endl;
    return 0;
}

 

 

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