Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

一个变量写错,竟会wa4次!啊啊啊啊!noip 可怎么办啊(附代码,做贡献)

Posted by 117474335 at 2010-09-24 22:49:30 on Problem 1192
#include <stdio.h>
#include <stdlib.h>
#define inf 66666666
#define pri 2999

struct da{
    int x, y , v ;}da[1001] ;
int ha[3000], n, ans , dx[4] = {-1, 0, 1, 0}, dy[4] = {0, 1, 0, -1 };
char vi[1001] ;

void init () 
{
    memset (ha, -1, sizeof (ha) ) ;
    ans = 0 ;
}

int find (int x, int y)
{
    int t = ((x % pri) * (y % pri)) % pri ; 
    while (ha[t] != -1 && (da[ha[t]].x != x || da[ha[t]].y != y)){
        t ++ ;
        if (t == 3000) t = 0 ;}
    return t ;
}

int dp (int nu)
{
    int i , t , v = da[nu].v ;
    vi[nu] = 1 ;
    for (i = 0 ; i <= 3 ; i ++ ){
        t = find (da[nu].x + dx[i], da[nu].y + dy[i]) ; 
        if (ha[t] == -1) continue ;
        t = ha[t] ; 
        if ( ! vi[t]){ 
            t = dp (t) ; 
            if (t > 0) v += t ;}} 
    if (ans < v) ans = v ; 
    return v ;  
} 
 
main () 
{ 
    int i, j, t; 
    scanf ("%d", &n) ;
    init () ;
    for (i = 1; i <= n; i ++ ){
        scanf ("%d%d%d", &da[i].x, &da[i].y, &da[i].v) ;
        t = find (da[i].x , da[i].y ) ;
        ha[t]= i ;}
    dp (1) ;
    printf ("%d\n", ans) ;
    system ("pause") ;
}

Followed by:

Post your reply here:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator