You are on page 1of 182
Contents : -Sinh ké tiép Hello World .. XAU AB CO DO DAIN.. XAU NHI PHAN CO K BIT 1 THUAT TOAN SINH........... : XAU NHI PHAN TRUGC......ccccssessccsssssesesesssssseesescennssteeesesnssteceseenseneeteneseensteeeseeneesst 14 XAU NHI PHAN KE TIEP.. XAU AB DAC BIBT (K kit A lién SINH TO HOP.. TAP CON LIEN KE PHIA TRUGC. TAP QUAN SU... DAT TEN. SINH HOAN VI. HOAN VI XAU KY TU... HOAN VI KE TIEP..... HOAN VI TIEP THEO CUA CHUOI SO.... HOAN VI NGUGC .ccccoseseseccessseseeccsnsseteeeseenee PHAN TICH SO. PHAN TICH SO 2... MA GRAY 1, MA GRAY 2 (NP-GRAY).... MA GRAY 3 (GRAY- NP)..... CHON SO TU MA TRAN VUONG CAP N TIM BOI SO (b6i cia N chi chira hai chit s6 0 va 9. MAY AT... HAHAHA. Quay lui , nhénh can Huy Init Page 1 DAY SO1 DAY S02 DI CHUYEN TRONG ME CUNG 1 (DOWN RIGHT) DI CHUYEN TRONG ME CUNG 2 (D-L-R-U) o.cccccssssssssesssccsssssstssessececesssssttessseceecesssnneeses 58 DAY CON TONG BANG K.. Tong diy con= K... Tong day con=K 2... TO HOP SO CO TONG BANG X.. TAP CON BANG NHAU.. DOI CHO CAC CHU SO... CHIA MANG (thanh k tap con bling mhau).....cscsssssssssssscscscscssscscssessssecseeeeeeeeee EAE st DI CHUYEN TRONG MA TRAN... SO NGUYEN TO TU DIEN BAI 32. LOAI BO DAU NGOAC chua lam SAP XEP QUAN HAU 1. SAP XEP QUAN HAU TAP HOP (dém sé BIEU THUC TOAN HOC (=23)... DUONG DI DAINHAT SO NHO NHAT CON UGC SO... KY TU DAC BIET.. NGUGI DU LICH... Giai thudt tham lam... DOI TIEN... NHAM CHU SO. TIM MAX. TONG NHO NHAT.....cscccsssseseseeeees CHIA MANG THANH HAI MANG CON CO TONG LON NHAT.. SAP XEP THAM LAM ‘Ap hop s6 long =k téng =s) Huy Init Page 2 NOI DAY 1... NOI DAY 2 SAP DAT XAU KY TU 1... 4 SAP DAT XAU KY TU 2 ooccccccccsssssssessssscccsssssseeseccecsesssniseseececesssstsssstececesssssnssssceceesssnnseses 103 MUA LUONG THUC wo... SAP XEP CONG VIEC 1....... GIA TRI NHO NHAT CUA XAU. SAP XEP CONG VIEC 2.. Chia dé tri LUY THUA.. s (GAB DOT AV, SO) Sesser cece ces gee eer 112 DEM DAY... DAY CON LIEN TIEP CO TONG LON NHAT. PHAN TU THU’ TIM KIEM NHI PHAN TINH FLOOR(X) DEM SO 0..... LUY THUA DAO... DAY XAU FIBONACI. HECO SOK... SAP XEP KANGURU.. TICH DA THUC TICH HAI SO NHI PHAN..... DAY XAU NHI PHAN... LUY THUA MA TRAN 1... LUY THUA MA TRAN 2... LOY THUA MA TRAN 3... LUY THUA MA TRAN 4 LUY THUA MA TRAN 5..... LUY THUA MA TRAN 6 Huy Init Page 3 DEM SO BIT 1 Quy hoach dong XAU CON CHUNG DAI NHA’ DAY CON TANG DAI NHAT......... DAY CON CO TONG BANG S. DAY CON DAI NHAT CO TONG CHIA HET CHO K. TO HOP C(n, k) XAU CON DOI XUNG DAI NHAT BAC THANG... HINH VUONG LGN NHAT... | SO CO TONG CHU SO BANG K.0.ccccccssescsesssssssssessesnsstecesesnsssecetennsesseeeeeiescssteeeseenseseee 151 DI NHO NHAT... CATALAN NUMBER chua lam TINH PC SO UGLY. DAY CON LAP LAI DAI NHAT. TONG LON NHAT CUA DAY CON TANG DAN SO BUGC [T NHAT . TONG LON NHAT CUA DAY CON KHONG KE NHAU.. XEM PHIM... CAI TUL. GIAIMA.. CATALAN NUMBER... DAY CON CHUNG DAIN NHAT CUA BA XAU.. DAY SO BL-TONIC... KY TU GIONG NHAU TONG CAC XAU CON... TONG BANG K.........-- BIEN DOI XAU . TONG BINH PHUONG Huy Init NHA KHONG KE NHAU.... XAU DOI XUNG 1 chua.. XAU DOI XUNG 2 chua... CAP SO DI CHUYEN VE GOC TOA DO... XAU DOI XUNG 1... Sap xép - Tim kiém SAP XEP DOL CHO TRUC TIE! SAP XEP CHON SAP XEP CHEN. a SAB XENI RO Testers seese sess ssereer cee augceeec st se RMSE eg ecreee es 192 SAP XEP XEN Kf... SAP XEP THEO GIA TRI TUYET DOI. HOP VA GIAO CUA HAI DAY SO 1. HOP VA GIAO CUA HAI DAY S02. SAP XEP [0 12 SAP XEP DAY CON LIEN TUC CAP SO TONG BANG K.. SAP XEP CHU SO.. TONG GAN 0 NHAT. PHAN TU LON NHAT SO LAN XUAT HIEN TONG CAP SO NGUYEN TO. MERGE SORT TICH LON NHAT - NHO NHAT . TRON HAI DAY BO SUNG PHAN TU’ ie SAB-XEP-THEO SO) HAN:XUATY ATEN fierce sien ersee asin renieen esi erect 210 TIM KIEM.. TIM KIEM TRONG DAY SAP XEP VONG Huy Init SO NHO NHAT VA NHO THU HAL. XOA DU LIEU TRONG DSLK DON... LOC DU LIBU TRUNG TRONG DSLK DON GIAO CUA BA DAY SO.........-:cc000 SAP XEP CHAN LE. DOI CHO {T NHAT on. eecoee Ngan xép. NGAN XEP 1 .. NGAN XEP 2. DAO TU DAY;NGOAGIDUNG DA TINEA Hstssceaese tts gases oMgaCeecs eee 204 KIEM TRA BIEU THUC SO HOC DEM SO DAU NGOAC BOI CHIEU... BIEN DOI TIEN TO - TRUNG TO BIEN DOI TIEN TO - HAU TO.. BIEN DOI TRUNG TO - HAU TO BIEN DOI HAU TO - TIEN TO. BIEN DOI HAU TO - TRUNG TO...... TINH GIA TRI BIEU THUC HAU TO.. TINH GIA TRI BIEU THUC TIEN TO.. HINH CHU NHAT LON NHAT BIEU THUC TANG GIAM.. BIEU THUC TUGNG DUONG. PHAN TU BEN PHAI NHO HON .. SO SANH BIEU THUC..... PHAN TU CO SO LAN XUAT HIEN NHIBU HON BEN PHAL Hang doi CAU TRUC DU LIRU HANG DO! 1 HANG BOI HAI DAU (DEQUEUE) . Huy Init Page 6 GIA TRI NHO NHAT CUA XAU. SO0VASO9. SO NHI PHAN TU 1 DENN... SO BDN 1 (nhj phn)... SO BDN 2 ( chia hét cho N).... SO LOC PHAT 1 ( g6m6 va 8)... SO LOC PHAT 2 SO LOC PHAT 3 BIEN DOI S -T (thao tée : nhan , tri) TIM SO K THOA MAN DIEU KIEN (cs khée nhau va <=5) PG thi. valdd thy nang cag: eeseeseasase eee reas CHUYEN DANH SACH CANH SANG DANH SACH KE. CHUYEN TU DANH SACH KE SANG DANH SACH CANH CHUYEN DANH SACH KE SANG MA TRAN KE BIEU DIEN DO THI CO HUGNG. CHUYEN MA TRAN KE SANG DANH SACH DFS TREN BO THI VO HUONG... BFS TREN DO THI VO HUGNG. TIM DUONG DI THEO DFS VOI DO TH] VO HUONG.. DUONG DI THEO BES TREN DO THI VO HUONG... KIEM TRA DUONG DI.... DEM SO THANH PHAN LIEN THONG (THEO DFS)... TIM SO THANH PHAN LIEN THONG VOI BFS KIRM TRA TINH LIEN THONG MANH KIEM TRA TINH LIEN THONG MANH VOI BFS b bude ds ké LIET KB DINH TRU (véi dfs) LIET KE DINH TRU VGI BFS ef TENTS Tos | GLANS 2A peo PEPE EE 312 KIEM TRA CHU TRINH...... KIEM TRA CHU TRINH VOI BFS Huy Init Page 7 KIM TRA CHU TRINH SU DUNG DISIJOIN SET... KIEM TRA CHU TRINH TREN BO TH] CO HUONG VOI DES. DUONG DI VA CHU TRINH EULER VOI DO THI VO HUGNG. CHU TRINH EULER TRONG DO TH] CO HUONG j......0.0 KIEM TRA DO THI CO PHAILA CAY HAY KHONG... AY KHUNG CUA DO THI THEO THUAT TOAN DFS... AY KHUNG CUA DO THI THEO THUAT TOAN BES... DUONG DI HAMILTON. DUKSTRA .. KRUSKAL ., Cy nhi phan... KIEM TRA NODE LA...... CAY BIEU THUC 1.. CAY BIEU THUC 2 DUYET CAY 1 .. DUYET CAY 2 DUYET CAY THEO MUC.. DUYET CAY NHI PHAN TIM KIEM 1... DUYET CAY THEO MUC DAO NGUOC. DUYET CAY KIBU XOAN OC ( duyét cay 7) AY NHI PHAN TONG -Sinh ké tiép Hello World In ra man hinh dong chit: Hello PTIT. Input Khéng cé dit ligu vao Output Hello PTIT. Huy Init Page 8 Giai: Cach Python 3: print(‘Hello PTIT.') XAU AB CO DO DAIN [Input (Output 2 |AA AB BA BB 2 [AAA AAB ABA ABB BAA BAB BBA B IBBB Giai: Céch 1: //\: khéi tao va in ra cau hinh dau tién //2: dura ra pow(2.n)-1 cau hinh tiép theo so vs cau hinh dau tién #include using namespace std; void initwsolve(){ int n; cin>>n: string s; for(int i=0;i=0) s{j]=" for(int i= } i++) cout<>t; while(t--) initwsolve(); return 0; } Cach 2: //1: kb6i tao va in ra cau hinh dau tién //2: xem 1a vong lap da dat dén cau hinh cudi cing chua 1/3: duyét nguge déi cdc chit B thanh A dén khi xuat hién A //4: Tai vi wi chit A thi déi thanh B va dimg #include using namespace std; int n: string s; void out(){ for(int i=0;i>n; for(int i=0;i=0) slj|='B'V/4 out(); } cout<>t; while(t--) initwsolve(); Huy Init Page 10 3 return 0; } Cach 3 : Quay lui : //\ tim gid tri cua phan tur theri 7/2: 86 la chon ma phan tr d6 c6 thé duge chon #include using namespace std; string s; int n; void out(){ for(int i=0:i >t; while(t--){ cin>>n; Try(0); cout< int n.k,a[17]; using namespace std; void check(){//3 int count=0; =n;i++) if(a[i]==1) count++; k){ for(int i= 1;i<=n;i++) cout< >t; while(t--){ cin>>n>>k; Try();/1 } return 0; Huy Init Page 12 } THUAT TOAN SINH Mot xau nhi phan d6 dai nduge goi 1a thuan nghich hay dGi ximg néu dao nguge xdu ohi phan do ta van nhan duge chinh né. Cho so ty nhién n(n nhap tir ban phim). Hay viét chuong trinh liét ké tat ca cde xau nhi phan thuan nghich co d6 dain. + Dong dau tién ghi lai s6 K 1a s6 cdc xau thudn nghich co dé dai n tim dug + K dong ké tiép ghi lai mdi dong mét xu nhi phan thuan nghich c6 dé dai n. Hai phan tw khée nhau cua xdu thuan nghich duge ghi céch nhau mét vai khoang trong. Vi du véi n= 4 ta tim duge 4 xau nhi phan thudn nghich nhu dui day 0 0 0 0 0 1 1 0 1 0 0 1 1 1 I 1 Giai #includes using namespace std; int n,a[ 1000]; void check(){ int I=1,r=n; while(I>n; Huy Init Page 13 Try(1); return 0; } XAU NHI PHAN TRUOC Cho xau nhi phan XJ. nhiém vu cua ban 1a hay dua ra xéu nhi phan trude cua X]]. Vi du X[] =“111111” thi xéu nhi phan trade ctia X{] 14 “111110°. Voi xau X[] = "000001" thi xu nhi tude cua X[] 14 “000000”. Chu y: néu xdu dir ligu trong input la xau dau tién thi trude no sé la xau cudi cing, Input: + Dong dau tién dua yao s6 luong test T. + Nhiing dong k ip dura vao cdc bé test. MGi bé test 14 mét x4u nhi phan X. + T,X] théa man rang bude: 1 using namespace std; void initwsolve(){ string s; cin>>s; int n=s.lengthO; while(n--){ else s[n]='1'; cout<>n; while(n--) initwsolve(); return 0; Céch 1:c++ rat ngin: : ; ; IM: Duyét nguge di cdc chit s6 1 thinh cdc s6 0 cho dén khi nao gap s6 0 thi thoi 1/2 : tai vi tri d6 déi s6 0 thanh sé 1 #include using namespace std; void initwsolve(){ string s;cin>>s; int JengthQ); 7*2*fifG>=0) s[i]='1's cout< >t; while(t--) initwsolveQ; Huy Init Page 15, return 0; } Cach 2:¢++ //A: Tim chi s6 dau tién 1a. 0. 0 theo ther ty tir phai sang trai va gén cho s6 do la 1. cdc s6 ding sau s6 do (tie nam bén phai ) thi g4n hét cho bang 0. #include using namespace std; void initwsolve(){ string s;cin>>s; int n=s.length(); if(s[iJ=="') s[i]=0': else { sliJ='V’;break; } cout<>t; while(t--) initwsolve(); return 0; } C4ch 3 Python 3: irenate)) t>0: s=list(input(Q) rea s: print(x. print() foe H#chu ¥ : python khéng c6 t++.,t XAU AB DAC BIET (K ki ty A lién tiép.) Huy Init Page 16 On lai N6i dung bai tap Mot xau ki tur S = (s1, 82, .., Sa) duge goi la xau AB dé dai n néu voi moi silS thi si hoac la ki tu A hoac s; la ki ty B. Vi dy xau S = “ABABABAB” la mot xu AB d6 dai 8. Cho s6 tu nhién N v a s6 ty nhién K (LEK using namespace std; int nk; string a; vector res; void check(){//3 int ok=0; for(int si using namespace std; int n.k,a[15]; void initwsolve(){ cin>>n>>k; for(int i=1;i for(int /*2*/while(1){ int i=k;//3 while(a[iJ==n-k+i&&i>0) i--; if(i==0) break; sit++) afiJ=iy//1 sit+) cout< >t; while(t--)initwsolve(); return 0; Huy Init Page 19 } Cach 2: //1: khdi tao va in cau hinh dau tién //2: kbiém tra xem dén cau hinh cudi dé ding chua //3: tao va in ra céu hinh ké tiép #include using namespace std; int n,k,a[15]; bool check(){ for(int al if (a[i]!=n-k+i) return 0; return 1; } void initwsolve(){ =k;i++) afi]=i;//1 i a i++) cout<0) i--; aliJ++; for(int j=i+1:j<=k;j++) a[j]=alj-1]+1; for(int i=1;i<=k;i++) cout<>t; while(t—initwsolve(): return 0; } Cach 3 : quay lui: #include using namespace std; int a[16],n,k; void out(){ for(int i= k;i++) cout< >t; while(t--){ cin>>n>>k; Try(1); cout< using namespace std; void initwsolve(){ int n,k; cin>>n>>k; i++) cin>>ali]; while(afiJ==n-k+i&&i>0) i-; //1 /*2*/ifG==0) for(int i=1 ;i<=k:i++) ali]=i; else { ali]++; for(int j=i+1;j<=k:j++4) alj]=afj-1]+1; } for(int i=1;i<=k;i++) cout<>t: while(t--) initwsolve(); return 0; ). CAch2: | | . //\ check : kiém tra xem t6 hgp co phai 1a cudi hay chua . 1/2 :duyét ngugc dé tim vi ti so can thay doi . Khi tim duge vi tri so do Thay the aj + 1, Thay aj = aj +j—i. voij =1+ 1,i+ 2. m. #include using namespace std; void initwsolve(){ int n,k;/**/ cin>>n>>k; int alk+1],check=0;//1 for(int i++)/**/ cin>>ali]; for(int Huy Init Page 22 aljl=alj-1]+1; check=1; break; } if(check==1) for(int i=] :i<=k:i++) cout<>t; while(t--) initwsolve(); return 0: } \cach 3 : python 3: chi ¥ mang a chay tir 0 dén k-1 ] folie for i ina : print(iend="') def initwsolve() n,k ap(int, input().split0) a= [int(i) for i in input().splitO[:k]] # nhap trén 1 dong ABR b curs 0 Game) | for i in a: print(i, end="') print() t=int(input()) while(t>0): rails) ta thon 3 : mang a chay tir 1 dén k (moi dau hoc lim bug code 2 kiéu sai) Huy Init Page 23 rommiie ee saint def initwsolve() rer Cres TD int(i) for i in input().splitO[:k]] a.insert(0,0) while i > 0 and afi] n-k+i: iva om SBT com Mer ble else i ee rap ecute(t ae 0): ato MOH ie TAP CON LIEN KE PHIA TRUGC Cho hai s6 N. K va mét tap con K phan tir X[] =(X1, X2,.., Xk) cua 1, 2 Nhiém vu ca ban la hay dua ra tap con K phan tir trade dé cua X{]. Vi du N=5, K=3, X[] ={2. 3, 5} thi tap con trude dé cla X{] la (2, 3, 4}. Chu y néu tp con trong input la dau tién thi trade dé 1a tap con cudi cng Input: + Déng dau tién dua vao sé luong test T. + Nhiing dong ke ti¢p dua vao cac bé test. MGi bé test g6m hai dong dong thu nhat 1d hai s6 N va K; dong tiép theo dua vao K phan tr cia X[] 2 con K phan tir cua 1, 2, .., N. + T,K,N, X[] théa man rang bude: 1< Output: + Duara két qua méi test theo tig doi <100: ISK using namespace std; void initwsolve(){ int nk; cin>>n>>k; int afk+1]=(0}; ‘ksi++) cin>>ali]; while(a[i}==ali-1]+1) i--//1 if(i==0)(//2 for(int j=k;j>=1;j--) aljJ=n-k+j; else{//3 afi]-- for(int j=i+1;j<=k;j++) aljl=n-k4j; } for(int i=1 :i<=k;i++) cout<>t; while(t--) initwsolveQ; ) TAP QUAN SU Huy Init Page 25, N6i dung bai tap Tai Chuong MY Resort, vao nua dém, ca trung doi nhan Iénh tap trung 6 san. Méi chién s¥ duge danh s6 tir 1 N (1 kq la k-count; #include using namespace std; void initwsolve(){ int n,k; cin>>n>>k; int a[k+1],b[k+1]. for(int i= 1;i<=k;i++) cin>>ali],b[i]=ali): while(a[i]==n-k+i&&i>0) i--; /*1*/ifG==0) cout<>t; while(t--) initwsolve(); return 0; } DAT TEN [Input (Output i |AB 42 |AC Huy Init Page 27 #include using namespace std; int af 16],n,k; void out(){ for(int i=1;i<=k;i++) cout< >t; while(t--){ cin>>n>>k; Try(1); cout< using namespace std; int n.k,a[100}; bool check() { for(int i: i++) { if(a[i]>n>>k; for(in k; i++) ali]=i; Huy Init Page 28 while(1) { if(check()) { for(int i=1; i<=k; i++) cout<0 && a[i]==n-k+i) i--; if(i==0) return; } mainQ) { int t; cin>>t; while(t--) initwsolve(); } SINH HOAN VI Ndi dung bai t Input lOwput b 2 21 123 132 213 231 312 321 Giai: Cach 1: Huy Init Page 29 //\: khéi tao va in ra cau hinh dau tién //2:ktra xem phai cau hinh cudi chua thi break; yong lap 7/3: kh6ng thi in ra cau hinh tiép theo #include using namespace std; int n,a[11]; void out(){ for(int i=1;i<=n;i++) cout<>n; for(int i=1;i<=n;i++) a[i]=i; outQ)://1 while(1)(_ int i while(alil O) i--; i--; if(i==0) break;//2 /*3*/ else { while(alj]>t; while(t--)initwsolve(): return 0; } Cach 2: quay lui : #includes using namespace std; int n,a[11],check[{11]={ }; void out(){ for(int i: si<=n;i++)cout<>t; while(t--)( cin>>n; Try(1); cout< tao ra | chudi khae (x) dé luu trir ket qua | /Abuc hién giéng nhu duyét hoan vi n phan tir cua m6t mang aln]. #includes using namespace std; int check[11]; string s,x[11]; void out(){ for(int i=0;i>t; while(t--) { cin>>s; Try(0); cout< using namespace std; void initwsolve(){ int n; cin>>n; int a[n+1],i=n.j=n,check=0; for(int i i++) cin>>ali]; /*1*/while(a[i]0) i--; i--; if(i >t; while(t--) initwsolveQ; Huy Init Page 33 return 0; } Cach 2: //1 : duyét nguge tim vi tri thir 1 can trao déi //2: duy@t nguoc tim vi ti thir 2 can trio doi //3: sip xép mang tang dan cdc s6 sau vi tri thr 1 #include using namespace std; void initwsolve(){ int n; cin>>n; int a[n+1],mark=0,check=0; for(int =n;i++) cin>>al[i]; /*1*/for(int i=n;i>1;i--){ if(ali-1]mark:i--){ if(afi]>afmark]){ swap(ali].almark]); break; } } sort(a+mark+1,atn+1);//3 if(check==1) for(int si<=nzi++) cout<>t; while(t--) initwsolve(); return 0; } HOAN VI TIEP THEO CUA CHUOI SO Ni dung bai tap Hay viét chong trinh nh§n yao mot chudi (c6 thé kha dai) cae ky tyr so va dua ra man hinh hoan vi ké tiép cua cac ky’ tw s6 do (véi ¥ nghia la hoan vi c6 gid tri lén hon tiép theo néu ta coi chudi dé 1a m6t gia tri sé nguyén). Chit ¥: Cac ky ty s6 trong day c6 thé tring nhau. Huy Init Page 34 [INPUT (OUTPUT fe Pe 2 279134423799 b 279134399742 Par 8 BIGGEST Giai : #1: im vi trf thit nhat cén tro déi //2: néu vi tri tim dirge =-1 (cau hinh max) thi in biggest khéng thi in hodn vi tiép theo /3 : tim vi tri thir nhat can trao di (s6 nho nhat Ion hon afi] 1/4 : sx chudi tang dan tir i+1 dén cudi chudi. #include using namespace std; void initwsolve(){ int n;cin>>n; string s;cin>>s; int i=s.length()- 1 j=s.length()-1 while(s|i}<=s[i-1|&&i>0) i; /#2*/ifG<0) { cout< >t; while(t--) initwsolve(); return 0; } HOAN VI NGUGC C&ch 1 : quay lui . //¥ tung y hét ligt ké hodn vi thong thurong chi khéc méi | vong for khoi tao s6 lua chon cho phan tir dau tién (n=>1) #include using namespace std; int n.a[11],check[1 1]; void out(){ for(int i= 1:i<=n;i++) cout<>t; while(t--) { cin>>n; Try()); cout< using namespace std; int na[11] , ok = 0; void out(){ for(int i = 1 ; i <=n :i++)cout << ali]; cout <<''s } void gennext(){ inti=n-1; while(a[i] < ali+1] && i >= 1) i--; if(i == 0) ok = 1; else{ int j=n; while(ali] > n; ok =0; for(int i<=n;it+)a[i] =n-i+ 1; while(ok == 0){ out(); gennext(); } cout << endl; } int main(Q){ int t=1; cin>>t; while(t--) initwsolve(): return 0; } PHAN TICH SO On lai Output [Input utput E 4) (3 1)22)(211)(1111) 5 5) (41) G2) GIN22) 2111 1111) Giai: C&ch 1: Quay lui a tt 1 [3 B Huy Init Page 38 2 1 1 =l=[s|= il i 1 1 1 1 7/1: ,0,n) phan tr dau tién cua day , tong hign tai //2: gin kq vao phan tir dau tien va tong hign tai //3: néu tong hién tai =n thi in day kq kh6ng thi sé tiép tuc tim, phan tur thir 2 nho hon phan tir truce dé ctra day 4ch chon phan tir dau tién #include using namespace std; int n.af11]; void out(int n){ cout >t; while(t--){ cin>>n; solve(1,0,n);//1 cout< using namespace std; int n,k,a[ 15]; bool OK; void out(){ si0&&al if(i>0){ ali]--; R=D/a{ii]; S=D%aliil; ki; R>0){ js=i+R3j+4)aljl=alil; if(S>0){ k=k+1;a[k]=S; } } Huy Init Page 40 else OK=0; } int main(){ int t;cin>>t; while(t--){ OK=1;cin>>n;k=1;a[k]=n; while(OK==1){ out(); newcon(); } cout< using namespace std; Huy Init Page 41 int n,a[11]; vector > res; void add(int n){ vectorb; for(int i<=n;i++)b.push_back(ali]); res.push_back(b); } void solve(int i,int sumeur,int k){ for(int j yH if(sumeur+j aliJ=j: sumcur+=j; if(sumeur==n) add(i); else solve(i+1 ,sumcur,j); sumeur-=j; } } } int main(){ int t;cin>>t; while(t--)( cin>>n; res.clear(); solve(1,0,n); ‘ize()< using namespace std; int na[11]; void out(){//2 couts>t; while(t--){ cin>>n; Try(1); cout< gray NGi dung bai tap . So nhi phan duc xem 1 cach mac dinh biéu dién cac, so. Tuy nhién, trong nhiéu img dung cua dién ti va truyén théng lai ding mét bién thé cua ma nhi phan do 1a ma Gray. Ma Gray d6 dai n co ma dau tién 14 n so 0, ma ke tiép cua no 1a mot xau nhi phan d6 dai n khac biét voi xu truce do mét bit. Vi du voi n=3 ta co 2° ma Gray nhwr sau: 000, 001. 011, 010. 110, 111, 101, 100. Hay viét chuong trinh chuyén d6i mét xéu ma nhi phn X co dé dai n thanh mét xfu ma Gray. Input: + Dong dau tién 1a s6 Iuong test T. + T dong ké tiép ghi lai méi dong mét test. MGi test 14 mét xdu nhi phan dé dai n. + T,nthda man ring budc: 1 using namespace std; void initwsolve(){ string s; cin>>s; cout< >t; while(t--) initwsolve(); return 0; } MA GRAY 3 (GRAY- NP) Gray => nhi phan NG6i dung bai tap $6 nhi phan dure xem 1a cach mac dinh bicu dién cac s6. Tuy nhién, trong nhiéu ting dung cua dién tr va truyén thong lai ding mét bién thé cua ma nhi phan do 1a ma Gray. Ma Gray d6 dai n co ma dau tién 1a n so 0, ma ké tiép ctia né La mét xu nhi phan d6 dain khac biét voi xu trude dé mét bit. Vi du voi n=3 ta c6 2° ma Gray nhur sau: 000, 001. 011, 010, 110, 111, 101, 100. Hay chuong trinh chuyén doi mét xéu ma Gray X co dé dai n thanh mét x4u ma nhi phan. Input: . | + Dong dau tién 1a so luong test T. + Tdong ké tiép ghi lai méi dong mét test. Mdi test la mét xdu ma Gray dé dai n + T,n thoa mn rang bude: 1 using namespace std; void initwsolve(){ string s; cin>>s; string res=s; cout< >t; while(t--) init return 0; } CHON SO TU MA TRAN VUONG CAP N On lai bai Huy Init Page 46 Mnote :1 32: 86 6 vi tri thir 1 hl (2)+s6 6 vj tri ther 3 h2 (6)+ 86 6 vi tri thir 2 h3 @ // 1: thuc hign quay lui hon vi dé tim tat ca cde vi tf cla méi hang 7/2: néu dat duge 1 cau hinh (vd 1 3 2) //3 : thi kiém tra tong a.1.1+ a.2.3+ a.3.2 ==k kh6ng , néu co thi dua va vetor v 2 chiéu : // 4: sau do in ra két qua #include using namespace std; int n,k,a[11][11],check[11]; vector b(11); vector > v; void /*3*/checksum(){ int sum=0; for(int si++) sum+=a[i] [b[i]]; if(sum: } void Try(int i){// 1 for(int j=1;j<=n;j++){ if(check|j op v.push_back(b); else Try(i+D; check[j]=0; } } } int main(){ cin>>n>>k; ii couts< using namespace sti void initwsolve(){ int n;cin>>n: queue q: q-push(9)://L while(1){ long long x=q.front(); if(x%n==0) {//2 cout<>t; while(t--) initwsolveQ; return 0; } CAch 2: // 1:ding quay lui dé kiét ké tat ca cc sé chita 2 sé 0 va 9 dua vao 1 mang déng //2: sau do sap xép mang theo thtr ty tang dan 7/3: tim kiém mang dén sé nho nhat %n ==0 #include using namespace std; intn; vector res: void /*1#/ Try( long long i){ if(i>=1e17) return; res.push_back(i); Try(i*10); TryG*10+9); } int main(){ int t:cin>>t; Try(9); sort(res.begin(),res.end());//2 while(t—-){ cin>>n; /*3*/for(int i=0;in) néu tai n6t cau hinh nao dé cé téng ding bing s (ok=1) thi dimg luén (kq :figure chinh 1a 86 luong céc iol tien ft nhat) /quay lui 3:néu dat dén cau hinh thao man g6m figure phan tir ma téng =s thi béo dung khong thi két lic viée om kiém. 1/4: vd tét 3 6,1 45 thi xét tong céc cp theo trinh ty :1,4,5,1+4, 145,445,14445 // note: phai dé 2 dong if 6 trén vi dé ngay sau khi khi tim phan tir tiép theo ta can so sAnh luén, néu dé 6 dudi if{} thi sé ko thé in ra s6 5 dure #include using namespace sti int n,check[31],ok=0; long long s,sum,a[31]: void Try(int i,int figure) { if(sum: =s&&i==figure){ ok=1:return;}//3 igure&&sum!=s) return://3 for(int j=1;j<=n;j++){ if(@>check[i-1]){ Huy Init Page 50 sum-=alj]; check[i]=0; } } void initwsolve(){ cin>>n>>s; N;i++) cin>>ali]; int figure; /*1*/for(figure=I ;figure<=n;figure++){ sum=0; Try(0,figure); if(ok==1) break; } if(ok==1) cout<>t; while(t--) initwsolve(); return 0; ) Huy Init Vidu Input (Output, i2 HA 2 IHAAA 4 |HAHA Giai: #include using namespace std; int a[20],n,OK; bool check(){ if(a{1]==0|a[n]==1) return 0; for(int i=1;i0 && a[i]!=0) { afi] = 0; i--; } if @ >0) afiJ=1; else OK = 0; } } int mainO{ int tein>>t: while(t--)initwsolve(); } Huy Init Page 52 Quay lui , nhanh can //Quy tac khoi tao chung lam nhiing bai tap vé quay lui #include using namespace std; int n ,ok,check[11];; vector v(11); vector > res; void initwsolve(){ cin>>n; // y.resize(n)://:dang khi v da bi pop.back hét sach sau 1 Ian test ok=0;//bat bude res.clear();//bit budc. v.clear();// khéng bat bude vi 6 trong Try (da xéa sau khi thém rdi) for(int i=0;i>t; while(t--) initwsolve(); return 0; } Huy Init Page 53 + Nhiing dong tigp theo dura vao cae bé test. Méi bé test gm hai dong: dong thir nhat dua vao N la s6 long phan tur cua day s6 Al: dong tiép theo dua vio N sé cia mang Af]. . T,N, Ali thoa man ring bude: 1 using namespace std; int n: vector a(11); void out(){ cout<<'['; for(int i=O:i>n; a.resize(n);//1 for(int i=0;i>ali]; out; /*2*/ while(a.size()> 1){ for(int i=0;i>t, while(t--) initwsolveQ); return 0; } DAY SO2 On lai Cho day s6 A[] g6m n s6 nguyén duong. Tam gide dae biét cua day so A[] 1a tam gide durge tao ra béi n hang. trong dé hang thir n 1a day s6 pl hang i fa tong hai phan tir lign tigp cia hang i+! (I using namespace std; intn; Huy Init Page 55, vector a(11); vector > res;//1 void initwsolve({ cin>>n; a.resize(n):res.clear();//note size();i++) cin>>ali]; res.push_back(a); /*2*/ while(a.size()>1){ for(int i=0;i=0;i--){ cout<< for(int j=0;j>t; while(t--) initwsolve(; return 0; } DI CHUYEN TRONG ME CUNG 1 (DOWN RIGHT) On lai Cho mét mé cung bao gom cdc khoi duoc biéu dién nhu mét ma tran nhi phan A[NJ[N]. Mot con chuét di tir 6 dau tién géc trai (A[0][0]) dén 6 cudi cing g6e phai (A[N-1][N-1]) theo nguyén ti . Down (D): Chuét duge phép xudng dudi néu 6 dudi né co gid tri 1. Right (R): Chudt duoc phép sang phai dudi néu 6 bén phai né cé gid tri 1. Hay dua ra m6t hanh tinh cua con chuét trén mé cung, Dua ra -1 néu chudt khong thé di dén dich. “Input: Dong dau tién dua vio 86 lugng bé test T. Nhiing dong ké tiép dua vao cac bé test. Mai bé test gom hai phan: phan thir nhat dua vao sé N 1a kich c6 cla mé cung; dong tiép theo dura vao ma tran nhi phan A[N][N]. T,N, AliJ[j] thoa man rang bude: 1 using namespace std; int n; bool a[ 1 1][11].ok; string s; void Try(int x,int y){ P*A* fifi ie &y= cout<

You might also like