GDOI 4802 探險計畫

2021-07-23 03:34:11 字數 2145 閱讀 1772

這一天,hnsdfz資訊組的眾人決定上岳麓山玩.岳麓山上的可以探險的地方非常多,而資訊組的oier們給每乙個地方都設定了乙個危險值,代表探險這個景點需要承擔的危險,而整個岳麓山可以抽象為由n行數字組成的數字梯形.而梯形頂端有m個數字,在每個數字處可以往左上或右上移動 ( (i,j) 可以到 (i-1,j) 或 (i-1,j-1), (i,j)表示輸入檔案中數字梯形的第i行第j列 ),形成一條從梯形底至頂的路徑.

而一開始,每個人都覺得如果走過別人走過的地方就太沒個性了.於是有

任務一: 找出m條完全不相交的至底至頂的路徑. (不可以重複經過點, 也不可以重複經過邊)

但略一思考,又都覺得如果限定這麼死,那就太無趣了,於是有:

任務二: 找出m條僅在數字處相交的路徑. (可以重複經過點, 但不可以重複經過邊. 在山頂相遇也是允許的)

現在,做為整個瀏覽計畫的發起者,你要計算出對於任務一與任務二,每個人觀賞線路所能經受的最小危險. (所有人在所有地方獲得的危險值總和 最小)

對於 10% 的資料 n<=10; m<=5;

對於100% 的資料 n<=80; m<=80; 每個數字<=20;

#include

#include

#include

#include

#include

using namespace std;

const int maxn=1000005;

int first[maxn],last[maxn],next[maxn],value[maxn],dui[maxn],cost[maxn],bz[maxn];

int n,m,num,i,t,j,k,l,x,y,a[200][200],b[200][200],p,sum,d[maxn],ans,ans1;

void lian(int

x,int

y,int z,int c)

bool pan()

if (k==100000) return false;

for (i=0;i<=sum;i++)

if (bz[i]==p) d[i]+=k;

p++;

return true;

}int dg(int

x,int sum1)

bz[x]=p;p1=sum1;

for (t=first[x];t;t=next[t])

}return sum1-p1;

}void change(int num)

int main()

i=n;

for (j=1;j<=m+n-1;j++)

t=b[i][j]+sum,k=sum*2+1,lian(t,k,1,0),lian(k,t,0,0);

i=1;

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

t=b[i][j],k=0,lian(k,t,1,0),lian(t,k,0,0);

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

if (i%2) dui[i]=i+1,dui[i+1]=i;

sum=sum*2+1;p=1;ans1=m;

while (pan()==true || p==1)

while (dg(0,10000)) p++;

printf("%d\n",ans);

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

if (i%2) value[i]=1;

else value[i]=0;

p=0;

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

for (j=1;j<=m+i-1;j++)

change(++p),++p;

p=0;

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

p++,change(num-p),p++;

for (j=1;j<=m+n-1;j++)

p++,change(num-p),p++;

memset(bz,0,sizeof(bz));memset(d,0,sizeof(d));

p=1;ans=0;ans1=m;

while ((pan()==true || p==1) && ans1)

while (dg(0,10000) && ans1) p++;

printf("%d\n",ans);

}

GDOI模擬 排列

給你m個對1到n的排列的特徵,特徵有兩種 1 x y v 排列的第x個數到第y個數之間的最大值為v 2 x y v 排列的第x個數到第y個數之間的最小值為v 要求你還原出這個排列。刷水有益身心健康。既然是求方案,資料範圍又很小,那麼明顯的要用把點向權值連邊。然後他每次給出範圍之後再進行刪邊。最後,二...

刷題 力扣 480

題目鏈結 題目描述 中位數是有序序列最中間的那個數。如果序列的長度是偶數,則沒有最中間的數 此時中位數是最中間的兩個數的平均數。例如 2,3,4 中位數是 3 2,3 中位數是 2 3 2 2.5 給你乙個陣列 nums,有乙個長度為 k 的視窗從最左端滑動到最右端。視窗中有 k 個數,每次視窗向右...

聯想r480安全模式 聯想r480 處理思路

1 筆記本其實是一種方便移動的pc,它的效能是比不上台式電腦的,所以在平時使用中有什麼使用技巧呢?2 首先來看筆記本最重要的電池,45.73wh的容量是很常見的,說白了開機正常工作的時候 例如做個文件,不聽歌不打遊戲 電池可以用個三個多小時,這個需要注意 3 再來看看硬碟,240g的ssd智慧型說夠...