許可權題 NFLSoj 113 或負 題解

2021-08-18 20:15:48 字數 2452 閱讀 2938

一眼網路流

考慮超級源點向第i個長者連流量為l[i]的邊,每個長者拆成d天,向每一天連n-sum[i][j],sum[i][j]表示他當天必須用來準備批判會的時間

每個長者的每一天專門再拆乙個點管理長者的午休,連hl-hr-sum1[i][j],sum1[i][j]表示他當天午休時間內必須用來準備批判會的時間

最後對應的點向批判會連邊

*陣列不要開小了!!!

#include 

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#define ll long long

#define lb long double

#define x first

#define y second

#define pair pair

#define pb push_back

#define pf push_front

#define mp make_pair

#define lowbit(x) x & (-x)

using

namespace

std;

const

int mod=1e9+7;

const ll linf=2e16;

const

int inf=2e9;

const

int magic=348;

const

double eps=1e-10;

const

double pi=acos(-1);

inline

int getint()

if (ch=='-') f=false,res=0; else f=true,res=ch-'0';

while (isdigit(ch=getchar())) res=res*10+ch-'0';

return f?res:-res;

}int z,d,h,n,hl,hr;

int l[148],r[148][148],f[148][148][148],sum[148][148],sum1[148][148];

int t;

int head[200048],to[800048],nxt[800048],f[800048],tot=1;

inline

void addedge(int s,int t,int cap)

int depth[200048];queue

q;inline

bool bfs()}}

if (depth[t]==-1) return

false; else

return

true;

}inline

int dfs(int x,int maxf)

if (ans>=maxf) return ans;

}if (!ans) depth[x]=0;

return ans;

}int main ()

if (sum1[i][j]==0)

if (sum[i][j]<0)

}t=z+d*z+d*z+d*h+1;

for (i=1;i<=z;i++) addedge(0,i,l[i]);

for (i=1;i<=z;i++)

for (j=1;j<=d;j++)

addedge(i,z+(i-1)*d+j,sum[i][j]);

for (i=1;i<=z;i++)

for (j=1;j<=d;j++)

addedge(z+(i-1)*d+j,z+d*z+(i-1)*d+j,sum1[i][j]-1);

for (i=1;i<=z;i++)

for (j=1;j<=d;j++)

for (k=1;k<=h;k++)

for (i=1;i<=d;i++)

for (j=1;j<=h;j++)

addedge(z+d*z+d*z+(i-1)*h+j,t,r[i][j]);

int ans=0,need=0;

for (i=1;i<=d;i++)

for (j=1;j<=h;j++)

need+=r[i][j];

while (bfs()) ans+=dfs(0,2e9);

if (ans==need) printf("yes\n"); else

printf("no\n");

return

0;}

許可權題 NFLSoj 32 輻射 題解

先吐槽一波這題實在是太難寫了。考慮乙個輻射源對其他點的貢獻,就是若干個正方形疊加在一起。如 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 1 2 2 2 1 0 0 1 2 3 2 1 0 0 1 2 2 2 1 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0考慮每個正方形...

騰訊50題第11題

將兩個有序鍊錶合併為乙個新的有序鍊錶並返回。新煉表是通過拼接給定的兩個鍊錶的所有節點組成的。示例 輸入 1 2 4,1 3 4輸出 1 1 2 3 4 4class solution def mergetwolists self,l1,l2 if l1 is none return l2 elif ...

1 1 檔案許可權

站點目錄和檔案許可權 myproject index.php 結論 所有的許可權都是給予apache的許可權 其他人 而不是使用者和使用者組,因為是www data使用者執行所有的操作。之所以給使用者和使用者組設定合適的全下是方便開發人員檢視,編輯 而已 1 最小許可權 myproject apac...