HDU1224 Free DIY Tour
/*******************************************************************************
# Author : Neo Fung
# Email : [email protected]
# Last modified: 2011-12-30 20:11
# Filename: HDU1224 Free DIY Tour.cpp
# Description :
******************************************************************************/
// #include "stdafx.h"
// #define DEBUG
#include <fstream>
#include <stdio.h>
#include <iostream>
#include <string.h>
#include <string>
#include <memory.h>
#include <limits.h>
#include <algorithm>
#include <math.h>
#include <numeric>
#include <functional>
#include <ctype.h>
#define MAX 120
using namespace std;
bool map[MAX][MAX];
int value[MAX],pre[MAX],sum[MAX];
void func(const int &n)
{
memset(sum,0,sizeof(sum));
for(int i=1;i<=n;++i)
if(pre[i]||i==1)
for(int j=i+1;j<=n;++j)
if(map[i][j] && sum[j]<sum[i]+value[j])
{
sum[j]=sum[i]+value[j];
pre[j]=i;
}
}
void output(const int &n)
{
if(n==0)
return;
else
{
output(pre[n]);
printf("%d->",n);
}
}
int main(void)
{
#ifdef DEBUG
freopen("C:/Users/neo/Desktop/stdin.txt","r",stdin);
freopen("C:/Users/neo/Desktop/stdout.txt","w",stdout);
#endif
int ncases,n,m;
int u,v;
scanf("%d",&ncases);
for(int nc=1;nc<=ncases;++nc)
{
memset(pre,0,sizeof(pre));
memset(map,false,sizeof(map));
memset(value,0,sizeof(value));
scanf("%d",&n);
for(int i=1;i<=n;++i)
scanf("%d",&value[i]);
scanf("%d",&m);
while(m--)
{
scanf("%d%d",&u,&v);
map[u][v]=true;
if(u==1)
{
pre[v]=u;
// sum[v]=value[v];
}
}
if(nc>1)
printf("
");
func(n+1);
printf("CASE %d#
",nc);
printf("points : %d
circuit : ",sum[n+1]);
output(pre[n+1]);
printf("1
");
}
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.