hdu 1050解題報告

2021-06-21 21:27:19 字數 826 閱讀 8054

題意:

在乙個賓館裡把乙個桌子從乙個房間i移到房間j但是在移動的過程中房間i和房間j之間的走廊會被占用。每一次的移動需要10鐘的時間,問把所有的桌子移動完畢至少需要多長時間。

思路:這是一道貪心演算法的題目,把每乙個桌子的移動按起始房間編號排序(這裡規定起始房間的編號小於目的房間的編號)

然後採取貪心策略,假設cur代表的是第cur個桌子的移動那麼對於其他的桌子i只要i滿足桌子i還沒有被移動,並且桌子i的移動不會和桌子cur的移動造成衝突。那麼這兩個桌子就可以同時移動。以此類推掃瞄整個陣列即可。下面是通過的**:

#include #include #include #include #include using namespace std;

const int maxn = 1000+10, inf = -100000;

typedef struct

node;

node a[maxn];

bool visit[maxn];

bool cmp(node x, node y)

int max(int x, int y)

int min(int x, int y)

int main()

sort(a+1,a+n+1,cmp);

memset(visit,false,sizeof(visit));

int count1 = 0,ans = 0;

while(count1 < n)

}if(a[i].s%2)}}

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

}return 0;

}

HDU 1050 搬椅子 數學

題意是在乙個有 400 個房間的走廊中搬動房間裡的椅子,如果兩次的路線重疊,就要分兩次搬動,如果不重疊,就可以一次搬動。開始的時候直接當成求線段重疊條數的題,發現這種思路完全是錯的,比如 1 3,2 4,3 5 這一組,只需搬動兩次即可,但找重疊線段的話就會找到 3 條重疊線段。然後打算直接模擬做,...

hdu3790解題報告

這裡起點和終點都是確定的,唯一有點小麻煩 也算不上什麼麻煩 就是這裡的權值有兩個,錢和路長,題目要求選擇最短路,對於一樣長度的路選擇錢最少的路.那麼我們每次就對路長鬆弛,對於路長一樣的在對錢鬆弛.不懂鬆弛操作的很抱歉 ac 840k 109ms include includeusing namesp...

hdu2647解題報告

題意 有個工廠的老闆給工人發獎金,每人基礎都是888,工人們有自己的想法,如 a 工人想要比 b 工人的獎金高,老闆想要使花的錢最少 那麼就可以 給b 888,給a 889 但是如果在此基礎上,b也想比a高,那麼就不能讓他們滿意,輸出 1 分析,根據題意可以得出乙個拓撲的關係,比如 一組資料 4 4...