Hdu Moving Tables(未完成)
写代码没有思路真是一件可怕的事情。。有思路,思路一团乱更可怕。。以后继续吧,这种一看起来没什么思路的题写起来就没有什么逻辑,最后总是一团糟。
#include <cstdio> #include <cstring> #include <string> #include<iostream> #include<algorithm> using namespace std; int main() { int n,m; scanf("%d",&n); while(n--) { scanf("%d",&m); int x[2][m]; for(int i=0; i<m; i++) { scanf("%d%d",&x[0][i],&x[1][i]); if(x[0][i]>x[1][i]) { int t=x[0][i]; x[0][i]=x[1][i]; x[1][i]=t; } } sort(x[0],x[0]+m); int pre=0,c=0; for(int i=0; i<m; i++) { if(x[0][i]==0) continue; for(int j=i+1; j<m; j++) { if(x[0][j]==0) continue; if(x[0][i]%2==1) { if(x[0][j]>x[1][pre]+1) { x[0][pre]=0; pre=j; if(j==m-1) x[0][pre]=0; } } else { if(x[0][j]>x[1][pre]) { x[0][pre]=0; pre=j; if(j==m-1) x[0][pre]=0; } } } c++; } printf("%d\n",c*10); } }
觉得思路很清晰了,可是还是不对。
#include <cstdio> #include <iostream> #include <math.h> #include <map> #include <cstring> using namespace std; int main() { int n,x; scanf("%d",&n); while(n--) { scanf("%d",&x); int w[x][2]; int c[x]; for(int i=0; i<x; i++) { scanf("%d%d",&w[i][0],&w[i][1]); if(w[i][0]>w[i][1]) { int t=w[i][0]; w[i][0]=w[i][1]; w[i][1]=t; } if(w[i][0]%2==1) w[i][0]+=1; if(w[i][1]%2==1) w[i][1]+=1; c[i]=0; } int m=0; for(int i=0; i<x; i++) { for(int j=i+1; j<x; j++) { if(!(w[j][0]>w[i][1]||w[j][1]<w[i][0])) { c[i]++; c[j]++; } } if(c[i]>m) m=c[i]; } m++; printf("%d\n",m*10); } } // 不一定是先输入小房间号再输入大房间号,没有这个规定

浙公网安备 33010602011771号