zoukankan      html  css  js  c++  java
  • dp【多进程】 zjoj p1315 构建双塔

    今天才算是把多进程的原理搞清楚了.....

    双进程类问题

    #include<iostream>
    #include<string>
    #include<cstdio>
    using namespace std;
    int num[1000000];
    int f[2003][2003];
    int sum[100000];
    int main()
    {
    	int n,m;
    	cin>>n;
    	for(int i=1;i<=n;i++)
    	{	cin>>num[i];sum[i]=num[i]+sum[i-1];}
    	f[0][0]=1;
    	int ans=-999;
    for(int i=1;i<=n;i++)
    	for(int j=sum[i];j>=0;j--)
    		for(int h=sum[i];h>=0;h--)
    		{	
    			{
    				if(j>=num[i])
    				if(f[j-num[i]][h]==1)f[j][h]=1;
    				if(h>=num[i])
    				if(f[j][h-num[i]]==1)f[j][h]=1;
    				if(j==h&&f[j][h]==1)ans=max(ans,j);
    			}
    		}//类似于01背包问题 只是变成了两维
    		if(ans==-999||ans==0){cout<<"Impossible"<<endl;return 0;}
    		cout<<ans<<endl;
    	return 0;
    }
    

      

  • 相关阅读:
    奇异值分解
    特征值和特征向量
    矩阵
    矢量化
    符号数组
    通用函数
    数据平滑
    多项式拟合
    协方差/相关矩阵/相关系数
    json
  • 原文地址:https://www.cnblogs.com/Lazers/p/6519682.html
Copyright © 2011-2022 走看看