Chatbox

Các bạn vui lòng dùng từ ngữ lịch sự và có văn hóa,sử dụng Tiếng Việt có dấu chuẩn. Chúc các bạn vui vẻ!
26/10/2011 08:10 # 1
dieuhb
Cấp độ: 3 - Kỹ năng: 3

Kinh nghiệm: 0/30 (0%)
Kĩ năng: 14/30 (47%)
Ngày gia nhập: 04/02/2010
Bài gởi: 30
Được cảm ơn: 44
Các bài luyện tập cho OLP 2012


Mời các bạn sinh viên ham mê lập trình giải các bài tập sau:

Bài số 1: (POS.CPP - POS.java)
Hãy tìm vị trí của số x trong dãy n số nguyên A nếu như A sắp xếp tăng dần. Dữ liệu vào được chứa trong file POS.inp theo định dạng như sau:
   Dòng đầu tiên chứa hai số n và x
   Dòng tiếp theo là n số nguyên từ A1 đến An.
Dữ liệu ra được lưu vào file POS.out chứa 1 số nguyên cho biết vị trí của đầu tiên của x.

Ví dụ 1
-------POS.inp--------- 
|  4 9                           |
|  3 10 3 7                  |
|............................. .... |

-------POS.out--------- 
|  4                              |
|................................. |

Ví dụ 2
-------POS.inp--------- 
|  7 9                           |
|  1 10 3 7 9 7 8        |
|.................................. |

-------POS.out--------- 
|  6                              |
|..................................|

Điều kiện:
    0<n<107 
    0<=x<=106
Thời gian chạy<=2g.
--------------------------------------------
Các bạn có thể thảo luận để tìm cách giải hiệu quả.
 




 
Các thành viên đã Thank dieuhb vì Bài viết có ích:
26/10/2011 08:10 # 2
k15cmu
Cấp độ: 23 - Kỹ năng: 24

Kinh nghiệm: 104/230 (45%)
Kĩ năng: 207/240 (86%)
Ngày gia nhập: 05/01/2010
Bài gởi: 2625
Được cảm ơn: 2967
Các bài luyện tập cho OLP 2012


Trích:


Ví dụ 1
-------POS.inp--------- 
|  4 9                           |
|  3 10 3 7                  |
|.................................. |

-------POS.out--------- 
|  4                              |
|.................................. |

  

 - Thưa thầy ở ví dụ 1: Trong đó số cần tìm trong dãy A là số 9, nhưng trong dãy số đó không có số 9 thì thì tại sao kết quả lại ra là 4, lẽ ra kết quả là số đó không tồn tại trong dãy A chứ


Thông tin liên hệ:
Cần hỗ trợ trực tuyến (skype): Phong.D.NGUYEN
Nick yahoo: conspeed_dark1991
Email: herodark191@gmail.com

 
Các thành viên đã Thank k15cmu vì Bài viết có ích:
26/10/2011 08:10 # 3
dieuhb
Cấp độ: 3 - Kỹ năng: 3

Kinh nghiệm: 0/30 (0%)
Kĩ năng: 14/30 (47%)
Ngày gia nhập: 04/02/2010
Bài gởi: 30
Được cảm ơn: 44
Các bài luyện tập cho OLP 2012


- Thưa thầy ở ví dụ 1: Trong đó số cần tìm trong dãy A là số 9, nhưng trong dãy số đó không có số 9 thì thì tại sao kết quả lại ra là 4, lẽ ra là số đó không tồn tại trong dãy A chứ.

Khi dãy A được sắp xếp thì vị trí của của số x trong dãy là ở vị trí số 4 (mặc dù nó ko có).



 
Các thành viên đã Thank dieuhb vì Bài viết có ích:
26/10/2011 09:10 # 4
k15cmu
Cấp độ: 23 - Kỹ năng: 24

Kinh nghiệm: 104/230 (45%)
Kĩ năng: 207/240 (86%)
Ngày gia nhập: 05/01/2010
Bài gởi: 2625
Được cảm ơn: 2967
Phản hồi: Các bài luyện tập cho OLP 2012


- Tức là nếu số đó không có thì mình sẽ lấy vị trí của số lớn hơn số đó, và số đó là số bé nhất trong các số lớn hơn nó
vd:
in.inp
5 7
8 2 5 3 9
out: 4 



Thông tin liên hệ:
Cần hỗ trợ trực tuyến (skype): Phong.D.NGUYEN
Nick yahoo: conspeed_dark1991
Email: herodark191@gmail.com

 
26/10/2011 09:10 # 5
dieuhb
Cấp độ: 3 - Kỹ năng: 3

Kinh nghiệm: 0/30 (0%)
Kĩ năng: 14/30 (47%)
Ngày gia nhập: 04/02/2010
Bài gởi: 30
Được cảm ơn: 44
Phản hồi: Các bài luyện tập cho OLP 2012


Đúng.




 
Các thành viên đã Thank dieuhb vì Bài viết có ích:
02/11/2011 12:11 # 6
vnttqb
Cấp độ: 13 - Kỹ năng: 8

Kinh nghiệm: 5/130 (4%)
Kĩ năng: 39/80 (49%)
Ngày gia nhập: 21/03/2011
Bài gởi: 785
Được cảm ơn: 319
Các bài luyện tập cho OLP 2012


 Thưa thầy:
Ý tưởng của em là không cần sắp xếp. Em nghĩ bài toán này có thể quy về bài toán xem x có giá trị lớn thứ bao nhiêu . Đó là suy nghĩ đơn giản về bài toán này. em không biết nghĩ thế có đúng không. nhưng cũng code thử gửi thầy.
 -- Không biết có vượt qua bao nhiêu % test của thầy. ---
Em xin thầy gửi bài tập lên box này để bạn nào yêu thích có thể rèn luyện. đến tháng 10 năm sau là 1 thời gian khá dài để các bạn đam mê rèn luyện và chuẩn bị tốt cho kì thi năm sau. 


#include "stdio.h"
#include "conio.h"
#include <iostream>
 
using namespace std;
long unsigned dem=1;
 
int tim(char *s)
      FILE *fi;
     long unsigned int n=3,x=2;
     fi=fopen(s,"rt");
     if(fi==NULL) return(0);
     fscanf(fi,"%d",&n);
     fscanf(fi,"%d",&x);
     /*
            freopen("data.in", "r", stdin);
            freopen("data.out", "w", stdout);
                    long unsigned int n=3,x=2;
                     scanf("%d%d",&n,&x);*/
                      for (int i=0;i<n;i++)
                           {
                              long unsigned tam;
                              fscanf(fi,"%d",&tam);
                              if(tam<x) dem++;
                           }
     
}
int out(char s[])
{
    FILE *fo;
    fo=fopen(s,"wt");
    fprintf(fo,"\t%d",dem);
    fclose(fo);
}
int main()
{
   tim("pos.in");
  out("pos.out");
   
}    
 
 



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

Cuộc đời là một dòng sông. Ai không bơi thì chết. 
 

Name: Tien (Tory) TRAN
Email: TranTien29@gmail.com


 
Các thành viên đã Thank vnttqb vì Bài viết có ích:
04/11/2011 09:11 # 7
dieuhb
Cấp độ: 3 - Kỹ năng: 3

Kinh nghiệm: 0/30 (0%)
Kĩ năng: 14/30 (47%)
Ngày gia nhập: 04/02/2010
Bài gởi: 30
Được cảm ơn: 44
Các bài luyện tập cho OLP 2012


BÀI SỐ 2  (SORT1.java - SORT1.CPP)

Cho file sort1.inp chứa n số nguyên xi ( 0<n<107, 0<=xi< 100000) theo định dạng như sau:

------- sort1.inp-----------------------
| n                                                     |
| x1 x2 x3                    ....  xn             |
|                                                         |
...........................................................

Hãy viết chương trình sắp xếp lại file sort1.inp và ghi ra file kết quả sort1.out


Yêu cầu: Thời gian không vượt quá 2s.





 
Các thành viên đã Thank dieuhb vì Bài viết có ích:
06/11/2011 16:11 # 8
vnttqb
Cấp độ: 13 - Kỹ năng: 8

Kinh nghiệm: 5/130 (4%)
Kĩ năng: 39/80 (49%)
Ngày gia nhập: 21/03/2011
Bài gởi: 785
Được cảm ơn: 319
Các bài luyện tập cho OLP 2012


 Theo em bài này có thể dùng thuật toán quicksort hoặc đánh dấu. Nhưng em nghĩ nếu data lớn hơn thì dùng mảng 1 chiều đánh dấu sẽ k tiện,
Vd a[i]  ( là phần tử thứ i <n) ta có điều kiện a[i]<10^10 chẳng hạn.
vậy phải xây đựng 1 mảng có 10^10 phần tử để đánh dấu, Giải pháp em đưa ra là dùng mảng 2 chiều 10^5 * 10^5 = 10^10 phần tử. nó sẻ có kiểu dữ liệu là kiểu mảng nếu số quá lớn. Với những ngôn ngữ khác thì giới hạn lớn hơn nhưng em muốn đề cập 1 giải pháp trên mảng 2 chiều .
Em code và cho kết quả test đúng với số nhỏ. Em gửi code và mong thầy cho bộ test lớn và comment lại cho em với ạ.

#include "stdio.h"
#include "conio.h"
#include "iostream"
 
 using namespace std;
int main()
{
    FILE *fi,*fo;
    fi=fopen("sort1.inp","rt");
    fo=fopen("sort1.out","wt");
    if(fi==NULL) { 
                 printf(" TEP BI LOI");
                 getch();
                 exit(1);
                 }
    // doc va xu ly danh dau
    long unsigned int n,x;
    unsigned int a[10][100];
    
    memset(a,0,sizeof(a));
    fscanf(fi,"%d",&n);
    for ( int i=0;i<n; i++)
        {
              fscanf(fi,"%ld",&x);
              /* dung mang 2 chieu de  danh dau phan tu*/
                 a[x/10][x%10]++;
        }
/* Xuat file*/
  for(int i=0;i<10;i++)
  for(int j=0;j<10;j++)
  for( int k=1; k<=a[i][j];k++)
  fprintf(fo,"\t%ld",i*10+j);
  }
File đính kèm Bạn phải đăng nhập mới thấy link download


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

Cuộc đời là một dòng sông. Ai không bơi thì chết. 
 

Name: Tien (Tory) TRAN
Email: TranTien29@gmail.com


 
Các thành viên đã Thank vnttqb vì Bài viết có ích:
07/11/2011 13:11 # 9
dieuhb
Cấp độ: 3 - Kỹ năng: 3

Kinh nghiệm: 0/30 (0%)
Kĩ năng: 14/30 (47%)
Ngày gia nhập: 04/02/2010
Bài gởi: 30
Được cảm ơn: 44
Phản hồi: Các bài luyện tập cho OLP 2012


vnttqb chú ý: giới hạn n là 1 triệu phần tử.


 




 
07/11/2011 20:11 # 10
vnttqb
Cấp độ: 13 - Kỹ năng: 8

Kinh nghiệm: 5/130 (4%)
Kĩ năng: 39/80 (49%)
Ngày gia nhập: 21/03/2011
Bài gởi: 785
Được cảm ơn: 319
Các bài luyện tập cho OLP 2012


 
  long unsigned int a[1000][100];
    
    memset(a,0,sizeof(a));
    fscanf(fi,"%d",&n);
    for ( int i=0;i<n; i++)
        {
              fscanf(fi,"%ld",&x);
              /* dung mang 2 chieu de  danh dau phan tu*/
                 a[x/1000][x%1000]++;
        }
/* Xuat file*/
  for (int i=0;i<1000;i++)
  for (int j=0;j<1000;j++)
  for ( int k=1; k<=a[i][j];k++)
  fprintf (fo,"\t%ld",i*1000+j);
  }
 Mảng 2 chiều 1000 x 100 sẽ phù hợp với yêu cầu đề bài thầy ra. tại em post nhầm cái tes trước của em mà không sửa lại với số lớn. :d
Còn em nghĩ long unsigned int n; là quá đủ để  làm rồi. :D

Em có thắc mắc này  xin thầy giải đáp giùm em. Long unsigned int thì khi nhập dùng định dạng gì ạ. em dùng "%ld" giống kiểu long int được không thầy.
 


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

Cuộc đời là một dòng sông. Ai không bơi thì chết. 
 

Name: Tien (Tory) TRAN
Email: TranTien29@gmail.com


 
Các thành viên đã Thank vnttqb vì Bài viết có ích:
09/11/2011 08:11 # 11
dieuhb
Cấp độ: 3 - Kỹ năng: 3

Kinh nghiệm: 0/30 (0%)
Kĩ năng: 14/30 (47%)
Ngày gia nhập: 04/02/2010
Bài gởi: 30
Được cảm ơn: 44
Các bài luyện tập cho OLP 2012


Ý tưởng giải bài này của em là đúng.
Tuy nhiên cách làm của em chưa hiệu quả. Em nghiên cứu xem có thể cải tiến tốc độ lên nữa hay ko (trong code của em) ?




 
Các thành viên đã Thank dieuhb vì Bài viết có ích:
09/11/2011 12:11 # 12
vnttqb
Cấp độ: 13 - Kỹ năng: 8

Kinh nghiệm: 5/130 (4%)
Kĩ năng: 39/80 (49%)
Ngày gia nhập: 21/03/2011
Bài gởi: 785
Được cảm ơn: 319
Các bài luyện tập cho OLP 2012


 Trích:
Ý tưởng giải bài này của em là đúng.
Tuy nhiên cách làm của em chưa hiệu quả. Em nghiên cứu xem có thể cải tiến tốc độ lên nữa hay ko (trong code của em) ?
 
 Thưa thầy em muốn trình bày giải pháp đánh dấu trên mảng 2 chiều. còn nếu tối ưu thì em sẽ sử dụng mảng 1 chiều để đánh dấu.
Mặt khác em đọc thông tin về giới hạn kiểu dữ liệu int có giới hạn lớn tới hơn 2 tỉ  ( Xem tại đây
code em nghỉ tối ưu hơn là
 


    int n,x;
    /* em doc co thong tin kieu int co gia tri nhu sau
    -2,147,483,648 -> +2,147,483,647
    --- vay nen em dung int luon. Em da test tren DEV C va chay tot voi so lon den 2 ti*/
    int a[100001];
    memset(a,0,sizeof(a));
    fscanf(fi,"%d",&n);
    for (int i=0;i<=n; i++)
        {
              fscanf(fi,"%d",&x);
              a[x]++;
        }
    for(int i=0;i<=1000;i++)
  for( int j=1; j<=a[i];j++)
  fprintf(fo,"\t%d",a[i]);
-------------------------------------------------------



 Em biết anh 2 theo giỏi topic này thì anh xem bổ sung thêm tagcode với đánh code vào forum khó quá anh.
              
              
        
              


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

Cuộc đời là một dòng sông. Ai không bơi thì chết. 
 

Name: Tien (Tory) TRAN
Email: TranTien29@gmail.com


 
Các thành viên đã Thank vnttqb vì Bài viết có ích:
11/11/2011 15:11 # 13
dieuhb
Cấp độ: 3 - Kỹ năng: 3

Kinh nghiệm: 0/30 (0%)
Kĩ năng: 14/30 (47%)
Ngày gia nhập: 04/02/2010
Bài gởi: 30
Được cảm ơn: 44
Các bài luyện tập cho OLP 2012


Trích:
 Trích:
Ý tưởng giải bài này của em là đúng.
Tuy nhiên cách làm của em chưa hiệu quả. Em nghiên cứu xem có thể cải tiến tốc độ lên nữa hay ko (trong code của em) ?
 
 Thưa thầy em muốn trình bày giải pháp đánh dấu trên mảng 2 chiều. còn nếu tối ưu thì em sẽ sử dụng mảng 1 chiều để đánh dấu.
Mặt khác em đọc thông tin về giới hạn kiểu dữ liệu int có giới hạn lớn tới hơn 2 tỉ  ( Xem tại đây
code em nghỉ tối ưu hơn là
 


    int n,x;
    /* em doc co thong tin kieu int co gia tri nhu sau
    -2,147,483,648 -> +2,147,483,647
    --- vay nen em dung int luon. Em da test tren DEV C va chay tot voi so lon den 2 ti*/
    int a[100001];
    memset(a,0,sizeof(a));
    fscanf(fi,"%d",&n);
    for (int i=0;i<=n; i++)
        {
              fscanf(fi,"%d",&x);
              a[x]++;
        }
    for(int i=0;i<=1000;i++)
  for( int j=1; j<=a[i];j++)
  fprintf(fo,"\t%d",a[i]);
-------------------------------------------------------



 Em biết anh 2 theo giỏi topic này thì anh xem bổ sung thêm tagcode với đánh code vào forum khó quá anh.
              
              
        
              
 Cách giải của em đúng. Nhưng cẩn thận khi làm bài với phần đánh dấu đỏ
Giải thích cho em thêm về kiểu int:
Kiểu int trên Dev C em dùng là 4 byte, trên TC là 2 byte. Kích thước của kiểu int tùy thuộc vào môi trường biên dịch, thông thường là = 1 từ.




 



 
11/11/2011 16:11 # 14
dieuhb
Cấp độ: 3 - Kỹ năng: 3

Kinh nghiệm: 0/30 (0%)
Kĩ năng: 14/30 (47%)
Ngày gia nhập: 04/02/2010
Bài gởi: 30
Được cảm ơn: 44
Phản hồi: Các bài luyện tập cho OLP 2012


 Bạn vnttqb đã giải đúng hai bài. Xin chúc mừng  và mong có nhiều bạn vào cùng giải và góp ý, bàn luận.

Bây giờ qua bài số 3.

Bài 3 INSIDE1.cpp - INSIDE1.java


Các điểm cho dưới đây xét trong hệ tọa độ Oxy.
Cho 4 điểm liên tiếp A, B, C, D tạo thành 1 tứ giác ABCD
Cho tiếp n điểm M1,  M2 ...  Mn
Hãy cho biết có bao nhiêu điểm trong n điểm không thuộc tứ giác ABCD.

Dữ liệu vào theo định dạng như sau:

----------INSIDE1.INP-------------
| XA YA XB YB XC YC XD YD      |
| n                                                |
| XM1 YM1                                   |
| XM1 YM2                                   |
| ................                                   |
| XMn YMn                                    |
----------------------------------------

Dữ liệu ra chứa trong file INSIDE1.OUT, chứa duy nhất số k là số điểm không thuộc tứ giác.

0<=n< 100
-1000<X, Y<=1000
Thời gian chạy <= 2 giây.

Ví dụ 

input 
0 0 0 9 10 10 3 7

0 0 100 100 4 4


output
1








 
Các thành viên đã Thank dieuhb vì Bài viết có ích:
11/11/2011 17:11 # 15
luckypham
Cấp độ: 3 - Kỹ năng: 3

Kinh nghiệm: 9/30 (30%)
Kĩ năng: 22/30 (73%)
Ngày gia nhập: 03/09/2010
Bài gởi: 39
Được cảm ơn: 52
Phản hồi: Các bài luyện tập cho OLP 2012


Bài của em:
#include <iostream>
using namespace std;
#define MAX 100
struct stDiem
{
       int x;
       int y;       
};
int DienTichTamGiac(stDiem a, stDiem b,stDiem c)
{
    int s = ((a.y-b.y)*(c.x-b.x)-(a.x-b.x)*(c.y-b.y))/2;
    return ((s>0)? s : -s);
}
bool Inside(stDiem a, stDiem b,stDiem c, stDiem d, stDiem x)
{
     return (((DienTichTamGiac(a, b, c) + DienTichTamGiac(c, d, a)) == DienTichTamGiac(a, b, x) + DienTichTamGiac(b, c, x) + DienTichTamGiac(c, d, x) + DienTichTamGiac(d, a, x)) ? true : false);
}
int main()
{
    stDiem diem[MAX];
    stDiem a;
    stDiem b;
    stDiem c;
    stDiem d;
    int dem = 0;
    a.x = 0;
    a.y = 0;
    b.x = 0;
    b.y = 9;
    c.x = 10;
    c.y = 10;
    d.x = 3;
    d.y = 7;
    diem[0].x = 0;
    diem[0].y = 0;
    diem[1].x = 100;
    diem[1].y = 100;
    diem[2].x = 4;
    diem[2].y = 4;
    for (int i=0; i<3; i++)
    {
        if (!Inside(a, b, c, d, diem[i]))
        dem++;
    }
    cout<<dem;
    system("PAUSE");
    return 0; 
}
Chúc topic nhận được nhiều sự chú ý từ mọi người
 



 
Các thành viên đã Thank luckypham vì Bài viết có ích:
13/11/2011 23:11 # 16
vnttqb
Cấp độ: 13 - Kỹ năng: 8

Kinh nghiệm: 5/130 (4%)
Kĩ năng: 39/80 (49%)
Ngày gia nhập: 21/03/2011
Bài gởi: 785
Được cảm ơn: 319
Phản hồi: Các bài luyện tập cho OLP 2012


@luckypham. hình như bạn sai rồi thì phải.

Lần này làm hơi muộn tại vì quả thật là bài này khó xơi hơn 2 bài trước. Bài này suy nghĩ hời hợt nên phải mất khá nhiều thời gian làm lại. nhưng cuối cùng cũng ra, Em chưa tối ưu code nhưng cứ gửi lên thầy xem thử. 

Tệp đã đính kèm ở cuối bài 
#include "stdio.h"
#include "conio.h"
 
struct toado
{
       float x;
       float y;
};
 
// tinh dien tich tam giac
float dientich (toado A,toado B,toado C) 
{
     float S=0.5*(A.x*B.y + B.x*C.y +  C.x*A.y - B.y*C.x - C.y*A.x  - A.y*B.x);
     return((S >0)? S: -S);
}
// kiem tra diem co thuoc tam giac khong
int kiemtra(toado A, toado B,toado C,toado X)
{
    if( (dientich(A,B,X)+ dientich(A,C,X) + dientich(B,C,X)) == dientich(A,B,C)) return(1);
    return(0);
int xuli(FILE *f,toado lom1, toado lom2,toado loi1,toado loi2,int n)
 {
    int so=0;
    for ( int i=0; i<n;i++)
       {
          toado kt;
          fscanf(f,"%f",&kt.x); 
          fscanf(f,"%f",&kt.y);
          if( kiemtra(lom1,lom2,loi1,kt) || kiemtra(lom1,lom2,loi2,kt))
          so++;
       }
    return (so);
 }
 
float T_toado(toado A,toado B,toado C)
{
      // thay toa do vao duong thang
      return ((B.y-A.y)*(C.x-A.x)-(B.x-A.x)*(C.y-A.y));     
}  
int main()
{
    toado A,B,C,D;
    FILE *fi,*fo;
    int n,dem=0;
    
    fi=fopen("INSIDE1.inp","rt");
    fo=fopen("INSIDE1.out","wt");
        
    if(fi==NULL) fprintf(fo," TEP KHONG TON TAI");
    // doc toa do 4 diem A B C D
    fscanf(fi,"%f",&A.x);   fscanf(fi,"%f",&A.y);
    fscanf(fi,"%f",&B.x);   fscanf(fi,"%f",&B.y);
    fscanf(fi,"%f",&C.x);   fscanf(fi,"%f",&C.y);
    fscanf(fi,"%f",&D.x);   fscanf(fi,"%f",&D.y);
    fscanf(fi,"%d",&n);
        if((T_toado(D,B,C)* T_toado(D,B,A))>=0) 
    dem=xuli(fi,A,C,B,D,n);
    else 
   dem=xuli(fi,B,D,A,C,n);   
   // XUAT KET QUA
    fprintf(fo,"\t%d",dem);
    fclose(fi);
    fclose(fo);
 }
File đính kèm Bạn phải đăng nhập mới thấy link download


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

Cuộc đời là một dòng sông. Ai không bơi thì chết. 
 

Name: Tien (Tory) TRAN
Email: TranTien29@gmail.com


 
Các thành viên đã Thank vnttqb vì Bài viết có ích:
14/11/2011 07:11 # 17
dieuhb
Cấp độ: 3 - Kỹ năng: 3

Kinh nghiệm: 0/30 (0%)
Kĩ năng: 14/30 (47%)
Ngày gia nhập: 04/02/2010
Bài gởi: 30
Được cảm ơn: 44
Các bài luyện tập cho OLP 2012


vnttqb cần nói sơ qua về thuật toán để cho các bạn cùng bình luận.



 
14/11/2011 11:11 # 18
vnttqb
Cấp độ: 13 - Kỹ năng: 8

Kinh nghiệm: 5/130 (4%)
Kĩ năng: 39/80 (49%)
Ngày gia nhập: 21/03/2011
Bài gởi: 785
Được cảm ơn: 319
Các bài luyện tập cho OLP 2012


Trích:
vnttqb cần nói sơ qua về thuật toán để cho các bạn cùng bình luận.
 Em phân chia tứ giác thành 2 tam giác và xét đk để điểm đó thuộc tứ giác là phải thuộc ít nhất 1 trong 2 tam giác ( tồn tại trường hợp điểm đó thuộc cả 2 tam giác khi nó nằm trên đoạn phân chia 2 tam giác)  Bằng cách tính tổng diện tích so với diện tích tam giác ta phân chia ra. 
Tuy nhiên việc xét phân tam giác cần chú ý đến trường hợp tứ giác lõm. vậy nên cần tìm dc đỉnh lõm và phân chia 2 tam giác tại đó

  
File đính kèm Bạn phải đăng nhập mới thấy link download


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

Cuộc đời là một dòng sông. Ai không bơi thì chết. 
 

Name: Tien (Tory) TRAN
Email: TranTien29@gmail.com


 
14/11/2011 12:11 # 19
luckypham
Cấp độ: 3 - Kỹ năng: 3

Kinh nghiệm: 9/30 (30%)
Kĩ năng: 22/30 (73%)
Ngày gia nhập: 03/09/2010
Bài gởi: 39
Được cảm ơn: 52
Các bài luyện tập cho OLP 2012


Trích:
Trích:
vnttqb cần nói sơ qua về thuật toán để cho các bạn cùng bình luận.
 Em phân chia tứ giác thành 2 tam giác và xét đk để điểm đó thuộc tứ giác là phải thuộc ít nhất 1 trong 2 tam giác ( tồn tại trường hợp điểm đó thuộc cả 2 tam giác khi nó nằm trên đoạn phân chia 2 tam giác)  Bằng cách tính tổng diện tích so với diện tích tam giác ta phân chia ra. 
Tuy nhiên việc xét phân tam giác cần chú ý đến trường hợp tứ giác lõm. vậy nên cần tìm dc đỉnh lõm và phân chia 2 tam giác tại đó

  
Quên mất trường hợp !=.=
 



 
14/11/2011 13:11 # 20
supermariobros
Cấp độ: 1 - Kỹ năng: 1

Kinh nghiệm: 4/10 (40%)
Kĩ năng: 0/10 (0%)
Ngày gia nhập: 14/11/2011
Bài gởi: 4
Được cảm ơn: 0
Phản hồi: Các bài luyện tập cho OLP 2012


Nhìn bài tập tiếng anh hoa hết cả mắt, chắc em phải luyện lại thôi


 
Copyright© Đại học Duy Tân 2010 - 2024