時間限制:c/c++ 1秒,其他語言2秒
空間限制:c/c++ 262144k,其他語言524288k
64bit io format: %lld
題目描述
我們把房間按照笛卡爾座標系進行建模之後,每個點就有了乙個座標。
假設現在房子裡有些紙片需要被收集,收集完紙片你還要回歸到原來的位置,你需要制定乙個策略來使得自己行走的距離最短。
你只能沿著 x 軸或 y 軸方向移動,從位置 (i,j) 移動到相鄰位置 (i+1,j),(i-1,j),(i,j+1) 或 (i,j-1) 距離增加 1。
輸入描述:
在第一行中給出乙個t, 1 ,1≤t≤10, 代表測試資料的組數。
對於每組輸入,在第一行中給出房間大小,第二行給出你的初始位置。
接下來給出乙個正整數 n,1≤n≤10 代表紙片的個數。
接下來 n 行,每行乙個座標代表紙片的位置。
保證房間小於 20×20,紙片一定位於房間內。
輸出描述:
對於每組輸入,在一行中輸出答案。
格式參見樣例。
示例1輸入
110 10
1 14
2 35 5
9 46 5
輸出the shortest path has length 24
思路:紙片最多才10個
考慮用next_permutation 全排列列舉即可 或者手寫dfs
#include
using namespace std;
typedef
long
long ll;
#define me(a,x) memset(a,x,sizeof a)
#define rep(i,x,n) for(int i=x;i#define repd(i,x,n) for(int i=x;i<=n;i++)
#define all(x) (x).begin(), (x).end()
#define pb(a) push_back(a)
#define paii pair
#define pali pair
#define pail pair
#define pall pair
#define fi first
#define se second
struct node
a[30];
int ans[30]
;int
main()
int sum=
1000000;do
sum=
min(sum,s);}
while
(next_permutation
(ans+
1,ans+p+1)
);cout<<
"the shortest path has length "
<}return0;
}
牛客小白月賽22
d題 題目鏈結 解題思路 直接暴搜,因為只有10個卡片嘛10 所以最多計算 10 10!次,直接列舉全排列算就可以了 include include using namespace std const int inf 0x3f3f3f3f int x 22 y 22 c 22 int main do...
牛客小白月賽22
我們知道將乙個大於1的數乘以另乙個大於1的數會使乘積大於任意乙個乘數。現在給出兩個數字 n,d,你能否計算將n乘以d次100的結果。多組輸入 每組輸入在一行中給出 n,d,1 n,d 100。每組輸入輸出一行代表答案。5 1 11 1 85 2 500 1100 850000 author 一屆書生...
牛客小白月賽22題解
a 操作序列 單點增加,區間求和,下標最小的非零數變成零,單點查詢。說完了不就線段樹嘛。由於範圍比較大,先存下來,離散化,再進行樹上的操作。注意這裡的左右區間離散化值不一樣的,左邊離散化要找到大於等於左邊界的值,右邊離散化要找到小於等於右邊界的值。b 樹上子鏈 類似於 dp 求樹直徑 c 交換遊戲 ...