| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
Re:WA;; Help~! (Please Reply in English!!)In Reply To:WA;; Help~! (Please Reply in English!!) Posted by:KysShadow at 2007-02-21 22:32:15 > What's Wrong??
> I can't find it;;
>
> =====================================================
>
>
> #pragma warning (disable : 4786)
>
> #include <iostream>
> #include <string>
> #include <map>
>
> using namespace std;
>
> void init();
> void input();
> void proc();
> int max(int t1, int t2, int t3);
> int Max(int t1, int t2);
> int Min(int t1, int t2);
>
> map<char, int> char2int;
> int len1, len2, a[101][101] = {0}, point[6][6];
> string gene1, gene2;
>
> int main() {
> init();
> input();
>
> return 0;
> }
>
> void init() {
> char2int['A'] = 1;
> char2int['C'] = 2;
> char2int['G'] = 3;
> char2int['T'] = 4;
> char2int['-'] = 5;
>
> point[1][1] = 5;
> point[1][2] = -1;
> point[1][3] = -2;
> point[1][4] = -1;
> point[1][5] = -3;
>
> point[2][2] = 5;
> point[2][3] = -3;
> point[2][4] = -2;
> point[2][5] = -4;
>
> point[3][3] = 5;
> point[3][4] = -2;
> point[3][5] = -2;
>
> point[4][4] = 5;
> point[4][5] = -1;
> }
>
> void input() {
> int n, i, temp1;
> string temp2;
>
> cin >> n;
> for(i = 1; i <= n; i++) {
> cin >> len1 >> gene1;
> cin >> len2 >> gene2;
>
> if(len1 < len2) {
> temp1 = len1;
> len1 = len2;
> len2 = temp1;
>
> temp2 = gene1;
> gene1 = gene2;
> gene2 = temp2;
> }
>
> proc();
>
> cout << a[len1][len2] << endl;
> }
> }
>
> void proc() {
> int i, j;
>
> for(i = 1; i <= Max(len1, len2); i++)
> a[i][0] = a[0][i] = -2100000000;
> a[0][0] = 0;
>
> for(i = 1; i <= len1; i++) {
> for(j = 1; j <= len2; j++) {
> a[i][j] = max(a[i - 1][j] + point[char2int[gene1[i - 1]]][char2int['-']],
> a[i][j - 1] + point[char2int[gene2[j - 1]]][char2int['-']],
> a[i - 1][j - 1] + point[Min(char2int[gene1[i - 1]], char2int[gene2[j - 1]])][Max(char2int[gene1[i - 1]], char2int[gene2[j - 1]])]);
> }
> }
> }
>
> int max(int t1, int t2, int t3) {
> int t = t1;
>
> if(t < t2) t = t2;
> if(t < t3) t = t3;
>
> return t;
> }
>
> int Max(int t1, int t2) {
> if(t1 > t2)
> return t1;
> return t2;
> }
>
> int Min(int t1, int t2) {
> if(t1 < t2)
> return t1;
> return t2;
> }
>
>
> =========================================================
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator