Thi Thành phố

bangity

New Member
không phải là khả năng, mà là trình độ đọc đề... nói thiệt nếu là đề tiếng việt, em đọc không hiểu gì hết, còn đề tiếng anh thì đỡ hơn.. nhưng kinh nghiệm thì không có... nếu anh có thể ra đề dễ hiểu và đơn giản hơn tí cho em practice... :)
 

sakurazuka

New Member
hừm....bangity ráng đọc lại đề đi, sak thấy đề viết khá rõ đó, đọc đề xong, xem lại cái ví dụ là sẽ thấy dễ hiểu.

Nói kô phải chảnh chứ, đọc đề tiếng anh vào thấy rất dễ chịu hơn đề tiếng việt... có lẽ do quen thuộc hơn, chứ đề tiếng việt đọc vô...........hông giống tiếng việt mình thường dùng :D

bangity đang học lớp mấy? có muốn làm thử mấy bài designing algorithm kô? dễ thôi, không khó, sak post cho làm thử..... = tiếng anh, bài tập sak làm trong lớp. Nếu bangity muốn thử để có thêm kinh nghiệm.

Các bạn đừng nóng quá, vì đâu phải ai cũng giỏi mà thi đc những đề khó như các bạn, có ng muốn vô học hỏi thôi.
 

[SoS]snoopylap

New Member
nếu muh chỉ học thôi, chưa thấy đề hoặc test bao giờ thì đừng nói là mình sẽ làm được 80/100 (16/20) đề tp chứ
@ madnolg; ;)) ioi = í ới

chắc tui warn anh tội chỉ bậy bạ wá >.<
 

Latina_Matrix

New Member
Tung đồng xu

Ngày xưa, cách đây đã lâu lắm rồi, ở vương quốc Byteland tươi đẹp có một nàng công chúa xinh đẹp tuyệt trần. Thật không may, chính vì sự xinh đẹp đó đã làm phù thủy Astral đã bắt làm về làm người hầu cho ông ta. Đức Vua vô cùng hoang mang khi chuyện này xảy ra, ông không biết phải làm cách nào để giải cứu con mình (ông không thể mang quân đến đánh vì điều đó là vô nghĩa). Tuy nhiên, tên phù thủy này lại rất sợ một câu thần chú được suy ra từ việc giải một bài toán cổ của Thần Sphinx. Bài toán đó có thể được mô tả một cách đơn giản như sau: “Khi ta tung một đồng xu, ta sẽ nhận được mặt sấp hoặc ngửa. Nếu ta tung lần lượt N đồng xu thì có bao nhiêu trường hợp mà có ít nhất K đồng xu liên tiếp cùng là ngửa ?” . Đức vua hứa sẽ thưởng rất hậu hĩnh và gả công chúa cho ai giải được bài toán này. Thực ra công chúa và anh chàng làm vườn trong hoàng cung đã yêu thương nhau từ lâu. Anh chàng giờ đây đang rất bối rối và cần sự giúp đỡ của bạn.
Input: TOSS.INP
 Một dòng duy nhất ghi hai số N và K.
Output: TOSS.OUT
 Một dòng duy nhất ghi số trường hợp đếm được.
Giới hạn:
 1 ≤ K ≤ N ≤ 10000
 Thời gian: 1s/test
 Bộ nhớ: 16MB
Ví dụ:
TOSS.INP TOSS.OUT
4 2 8
4 3 3
 

bangity

New Member
ok, nếu số lần lật là 10000. cho 1 cái input, và randomly lật cái đồng xu và in ra số lần ngửa lớn hơn 1.



#include <iostream>
#include <ctime>
#include <windows.h>
using namespace std;

int roll_coin(int times)
{
srand(time(0));
unsigned int k = 0;
int ran[10000];
for(int i = 0; i < times; i++)
{
ran = (rand() % 2) + 1;
if(ran == 1)
{
k += 1;
}
}
return k;
}

int main()
{
int f = 0;
int k = 0;
srand(time(NULL));
int roll;
cout << "Enter times to roll, <= 10000: ";
cin >> roll;
if(roll <= 10000)
{
k = roll_coin(roll);
f = roll - k;
cout << "Rolled " << roll << " time(s) and won " << k << " time(s).\n";
if(f > k)
{
cout << "You lost!\n";
cout << "Omg, the princess is going to be taken by the witch!\n";
} else if(f < k)
{
cout << "You won!\n";
cout << "The princess had been saved!\n";
}
} else
{
cout << "\nInvalid Input!!!\n";
Sleep(3000);
return(0);
}
return 0;
}



OK, yay! em thử compile và run nó, everything is good..., ở trên là source code. Cái này là exe, mời anh chạy thử de1.exe
 

bangity

New Member
mời anh cho điểm... lần đầu tiên làm thử 1 đề.. take em hết 15 phút...

em xài int là 4 bytes mỗi cái. cái array là 10000 tức là 4 * 10000 = 40000 bytes => 40KB nhỏ hơn 16MB quy định của đề..

em có thể xài short, which will take 20KB, phân nữa của int

nếu muốn K lớn hơn hoặc bằng 1 thì đổi thành unsigned int
 

sakurazuka

New Member
bangity nhầm rồi, cho mặt sấp = T, mặt ngửa = H

ví dụ tung 4 đồng xu, có bao nhiêu trường hợp tất cả? trong đó, có bao nhiêu trường hợp có ít nhất 2 đồng ngửa liên tiếp nhau? ---> 1 bài toán dạng probability.
 

sakurazuka

New Member
hik...... kô... ví dụ tung 4 đồng xu, tổng cộng sẽ 2^4 = 16 kết quả... ví dụ như nếu là 2 đồng H liên tiếp trở lên thì là 8 trường hợp, nhưng nếu cho ví dụ tung 4 đồng, mà cần 3 đồng H liên tiếp thì kô phải là 1/2

Hint: sử dụng công thức tính tập hợp giao của các tập hợp có ít nhất K đồng liên tiếp

================

Sak đang thi học kỳ nên chưa làm bài này đc, nhưng bít cách giải òi......áp dụng công thức tính tập hợp giao là ra rồi ^___^
 
Top