设为首页 加入收藏

TOP

HDU--4324--Trouble
2015-11-21 00:56:40 来源: 作者: 【 】 浏览:1
Tags:HDU--4324--Trouble

//很考想法啊,把五个区间分成200*200,200*200,200来搞。注意:过的时候要用__int64为来过(输出:%I64d)

AC代码:

?

#include
  
   
#include
   
     #include
     
     using namespace std
     ; #define N 205 
     __int64 num
     [6
     ][N
     ]; __int64 s0
     [N
     *N
     ]; __int64 s1
     [N
     *N
     ]; __int64 s2
     [N
     ]; int main() { int x
     ; scanf
     (%d
     ,&x
     ); while(x
     --) { int n
     ; scanf
     (%d
     ,&n
     ); int i
     ,j
     ; for(i
     =1
     ;i
     <=5
     ;i
     ++) { for(j
     =1
     ;j
     <=n
     ;j
     ++) { scanf
     (%I64d
     ,&num
     [i
     ][j
     ]); } } int cnt
     =0
     ; for(i
     =1
     ;i
     <=n
     ;i
     ++) { for(j
     =1
     ;j
     <=n
     ;j
     ++) { s0
     [cnt
     ++]=num
     [1
     ][i
     ]+num
     [2
     ][j
     ]; } } int l0
     =cnt
     ; cnt
     =0
     ; for(i
     =1
     ;i
     <=n
     ;i
     ++) { for(j
     =1
     ;j
     <=n
     ;j
     ++) { s1
     [cnt
     ++]=num
     [3
     ][i
     ]+num
     [4
     ][j
     ]; } } int l1
     =cnt
     ; cnt
     =0
     ; for(i
     =1
     ;i
     <=n
     ;i
     ++) { s2
     [cnt
     ++]=num
     [5
     ][i
     ]; } int l2
     =cnt
     ; sort
     (s0
     ,s0
     +l0
     ); sort
     (s1
     ,s1
     +l1
     ); sort
     (s2
     ,s2
     +l2
     ); int ok
     =0
     ; int k
     ; for(i
     =0
     ;i
     <l2
     &&ok
     ==0
     ;i
     ++) { j
     =0
     ,k
     =l0
     -1
     ; while(j
     <l1
     &&k
     >=0
     ) { if((s0
     [k
     ]+s1
     [j
     ]+s2
     [i
     ])==0
     ) { ok
     =1
     ; break; } else if((s0
     [k
     ]+s1
     [j
     ]+s2
     [i
     ])>0
     ) { k
     --; } else { j
     ++; } } } if(ok
     ) { printf
     (Yes 
     ); } else { printf
     (No 
     ); } } return 0
     ; }
    
   
  

?

?

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇C++中的运算符重载 下一篇HDU 5335 Walk Out(Bfs搜索字典..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: