Tere è una tabella di dimensioni R × C; R righe e colonne C. Un sub-rettangolo della tabella è bloccato. Siamo in grado di spostarci solo verso destra o verso il basso. Qual è il numero di percorsi dalla cella in alto a sinistra alla cella in basso a destra mentre non si passa il sub-rettangolo bloccato?
mio approccio: calcolare il percorso da per righe r2 C = {0 a C1-1} e percorsi da riga r1 C = {c2 + 1, C}
r1, c1, r2, e c2 , la cella in alto a sinistra e la cella in basso a destra del rettangolo bloccato.
Ricerca del numero di percorsi in una tabella
Cal Calculate C(n,k)
My Code:
int R = in.nextInt()-1;
int C = in.nextInt()-1;
int r1 = in.nextInt()-1;
int c1= in.nextInt()-1;
int r2 = in.nextInt()-1;
int c2 = in.nextInt()-1;
long ans=0;
long temp=0;
temp+= Cal(R-r2+C-c1,C-c1);
for(int i=0;i<c1 && r2!=R;i++){
ans+=Cal(i+r2,r2)*(Cal(R-r2+C-i,C-i)-temp);
}
temp=0;
temp+=Cal(r1+c2,r1);
for(int i=c2+1;i<=C;i++){
ans+= (Cal(i+r1,r1)-temp)*Cal(C-i+R-r1,C-i);
}
System.out.println(ans);
Non ricevo la risposta corretta per il mio algoritmo di cui sopra. Per favore aiutami se sto facendo qualcosa di sbagliato.
Sample input:
8 12
5 5 8 8 ANS:7008
Non è necessario raggiungere l'angolo in alto a sinistra, ad esempio è possibile raggiungere la metà del bordo superiore del rettangolo di blocco e continuare da lì in basso a destra. Non sembra che tu abbia preso in considerazione questa opzione. – amit
@amit scusa non potevo capirti? puoi spiegare in breve – user4447943
Supponiamo di avere un rettangolo di blocco a (5,5), (10,10). È possibile passare da (1,1) a (4,7) per (1,1) -> ...-> (1,7) -> ...-> (4,7), quindi da (4,7) a (10,10) e alla fine. Non è necessario passare attraverso (4,4). O ho frainteso il tuo approccio e lo prendi in considerazione? – amit