| ||||||||||
| 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 | |||||||||
这两个代码有什么不同?为什么一个AC,一个TLE。。。--------------TLE-----------------------
#include <cstdio>
#include <cstring>
using namespace std;
const int maxN = 51200;
int data[maxN];
int index[maxN];
int main()
{
int cas = 0;
int ng, nr, nq;
while(scanf("%d", &ng) != EOF && ng != 0)
{
for(int i = 1; i <= ng; i++)
data[i] = index[i] = i;
scanf("%d", &nr);
for(int i = 0; i < nr; i++)
{
int s, t;
scanf("%d %d", &s, &t);
for(int j = s, k = t; j < k; j++, k--)
{
index[data[j]] = k;
index[data[k]] = j;
data[j] ^= data[k], data[k] ^= data[j], data[j] ^= data[k];
}
}
printf("Genome %d\n", ++cas);
scanf("%d", &nq);
for(int i = 0; i < nq; i++)
{
int q;
scanf("%d", &q);
printf("%d\n", index[q]);
}
}
return 0;
}
-------------------AC---------------------------
#include <cstdlib>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
int N,Q,R,gen[50005],r1,r2,sen=1,temp;
while(scanf("%d",&N),N!=0)
{
for(int t=1;t<=N;t++)
gen[t]=t;
scanf("%d",&R);
while(R--)
{
scanf("%d%d",&r1,&r2);
while(r1<=r2)
{
temp=gen[r1];
gen[r1]=gen[r2];
gen[r2]=temp;
r1++;
r2--;
}
}
scanf("%d",&Q);
printf("Genome %d\n",sen++);
while(Q--)
{
scanf("%d",&temp);
int t=1;
while(gen[t]!=temp)
t++;
printf("%d\n",t);
}
}
return EXIT_SUCCESS;
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator