zoukankan      html  css  js  c++  java
  • jzoj 1274. 游历的路线(lines.pas/cpp)

    这题DP,考场时把数组给开小了。。。
    设f[i][j]表示在第j天到了城市i的最小花费。
    输出f[n][m]即可。
    时间复杂度O(n2m)
    上标:

    #include<cstdio>
    #include<cstring>
    #include<algorithm>
    using namespace std;
    int n,m,a[110][110][21],x;
    int c[110][110],f[110][210];
    
    inline int read()
    {
    	int x=0; char c=getchar();
    	while (c<'0' || c>'9') c=getchar();
    	while (c>='0' && c<='9') x=(x<<1)+(x<<3)+(c^48),c=getchar();
    	return x;
    }
    
    int main()
    {
    	freopen("lines.in","r",stdin);
    	freopen("lines.out","w",stdout);
    	n=read(),m=read();
    	for (int i=1;i<=n;i++)
    		for (int j=1;j<=n;j++)
    		{
    			if (i==j) continue;
    			c[i][j]=read();
    			for (int k=1;k<=c[i][j];k++)
    				a[i][j][k]=read();
    		}
    	memset(f,10,sizeof(f));
    	f[1][0]=0;
    	for (int k=1;k<=m;k++)
    		for (int i=1;i<=n;i++)
    			for (int j=1;j<=n;j++)
    			{
    				if (i==j) continue;
    				x=a[i][j][(k-1)%c[i][j]+1];
    				if (!x) continue;
    				f[j][k]=min(f[j][k],f[i][k-1]+x);
    			}
    	if (f[n][m]==f[0][0]) puts("0");
    	else printf("%d
    ",f[n][m]);
    	return 0;
    }
    
    转载需注明出处。
  • 相关阅读:
    python之网络编程
    python之面相对象进阶
    python之面相对象程序设计
    运行期优化
    切勿用普通的for循环遍历LinkedList
    NIO网络编程
    虚拟机字节码执行引擎
    AIO(异步IO)
    选择器(Selector)
    通道(Channel)
  • 原文地址:https://www.cnblogs.com/jz929/p/11817637.html
Copyright © 2011-2022 走看看