Advertisement
Guest User

tsp2

a guest
Mar 30th, 2012
179
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.67 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <math.h>
  3. #include <vector>
  4. #include <algorithm>
  5. using namespace std;
  6. int T,N,K;
  7. int dist[1010][1010];
  8. int f0[2000];
  9. int f1[2000];
  10. int togo[2000];
  11. int tocome[2000];
  12. int main()
  13. {
  14. scanf("%d",&T);
  15. for(int t=1;t<=T;t++)
  16. {
  17. scanf("%d %d",&N,&K);
  18. for(int i=0;i<N;i++)
  19. for(int j=0;j<N;j++)
  20. dist[i][j]=0;
  21. for(int j=0;j<K;j++)
  22. {
  23. int x,y;
  24. scanf("%d %d",&x,&y);
  25. dist[x][y]++;
  26. }
  27.  
  28. /*for(int i=0;i<N;i++)
  29. {
  30. for(int j=0;j<N;j++)
  31. printf("%02d ",dist[i][j]);
  32. printf("\n");
  33. }*/
  34.  
  35. for(int j=0;j<N;j++)
  36. {
  37. int prev=0;
  38. for(int i=N-1;i>=0;i--)
  39. {
  40. dist[i][j]=prev+dist[i][j];
  41. prev=dist[i][j];
  42. }
  43. }
  44. for(int i=0;i<N;i++)
  45. {
  46. int prev=0;
  47. for(int j=0;j<N;j++)
  48. {
  49. dist[i][j]+=prev;
  50. prev=dist[i][j];
  51. }
  52. }
  53.  
  54. /*for(int i=0;i<N;i++)
  55. {
  56. for(int j=0;j<N;j++)
  57. printf("%02d ",dist[i][j]);
  58. printf("\n");
  59. }*/
  60.  
  61.  
  62. togo[0]=0;
  63. for(int i=1;i<N;i++)
  64. togo[i]=togo[i-1]+dist[i-1][i];
  65.  
  66. tocome[N-1]=0;
  67. for(int i=N-2;i>=0;i--)
  68. {
  69. tocome[i]=tocome[i+1]+dist[i+1][i];
  70. }
  71.  
  72. f0[1]=dist[1][0];
  73. f1[1]=dist[0][1];
  74. //printf("dsfsf\n");
  75. for(int i=2;i<N;i++)
  76. {
  77. int optval0=1000000000;
  78. int optval1=1000000000;
  79. for(int j=1;j<i;j++)
  80. {
  81. optval0=min(optval0,dist[i][j-1]+togo[i-1]-togo[j]+f1[j]);
  82. optval1=min(optval1,dist[j-1][i]+tocome[j]-tocome[i-1]+f0[j]);
  83. }
  84. f1[i]=optval1;
  85. f0[i]=optval0;
  86. }
  87.  
  88. printf("%d\n",min(f0[N-1]+dist[N-2][N-1],f1[N-1]+dist[N-1][N-2]));
  89.  
  90.  
  91.  
  92.  
  93.  
  94. }
  95. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement