2723. Những con đường quanh nông trang Mã bài: VRATF

Wednesday, August 27, 2014

2723. Những con đường quanh nông trang

Mã bài: VRATF

Các con bò của nông dân John có sở thích là hay đi khám phá những vùng xung quanh nông trang. Ban đầu, tất cả N (1 <= N <= 1,000,000,000) con bò tập trung thành 1 nhóm và cùng bắt đầu chuyến đi trên 1 con đường. Cho tới khi gặp một ngã ba đường thì chúng đôi khi chọn cách chia làm 2 nhóm nhỏ hơn ( mỗi nhóm ít nhất 1 bò ) và mỗi nhóm lại tiếp tục hành trình trên con đường của nhóm chúng. Khi một trong những nhóm này gặp 1 ngã ba khác thì nhóm này lại có thể tách ra tiếp, và cứ như vậy.
Các con bò đã hình thành nên 1 quy tắc về việc chia nhóm như sau: nếu chúng có thể chia thành 2 nhóm mà chênh lệch số bò của 2 nhóm là đúng bằng K (1 <= K <= 1000) thì tại ngã ba đó chúng sẽ chia làm 2; nếu không thì chúng sẽ dừng cuộc hành trình và đứng ở đó nhấm nháp cỏ non.
Giả sử rằng luôn có những ngã ba mới trên các con đường, hãy tính xem cuối cùng có bao nhiêu nhóm bò tất cả.

Dữ liệu

  • Dòng 1: 2 số nguyên cách nhau bởi dấu cách: N và K

Kết quả

  • Dòng 1: Một số nguyên cho biết số lượng nhóm bò sau cùng.

Ví dụ

Dữ liệu
6 2

Giải thích:
Có 6 con bò và độ chênh lệch khi xét chia nhóm là 2.

Kết quả
3

Giải thích:
Cuối cùng có 3 nhóm bò (1 nhóm có 2 bò, 1 nhóm có 1 và 1 nhóm có 3 ).

   6
  / \
 2   4
    / \
   1   3



Được gửi lên bởi:Duc
Ngày:2008-05-24
Thời gian chạy:1s
Giới hạn mã nguồn:50000B
Memory limit:256MB
Cluster:Pyramid (Intel Pentium III 733 MHz)
Ngôn ngữ cho phép:Tất cả ngoại trừ: ERL JS NODEJS PERL 6
Nguồn bài:USACO US-Open 2008 - Bảng Bạc









code hàng đợi.


#include <stdio.h>
#include<algorithm>
unsigned long n,t[10000],dau=0,cuoi=1,dem=0;
int k;
void chovao()
{
       t[cuoi]=(t[dau]+k)/2;
       t[cuoi+1]=(t[dau]-k)/2;
       cuoi+=2;
      
}

void xuly()
{
       t[dau]=n;
       while (dau!=cuoi)
       {
              if ((t[dau]-k)%2==0&&t[dau]>=(k+2)) chovao(); else dem++;
              dau++;
       }
}
int main()
{
       scanf("%lu%d",&n,&k);
       xuly();
       printf("%lu",dem);

}
















Chia sẻ bài viết ^^
Other post

All comments [ 0 ]


Your comments