BZOJ 1193 馬步距離(貪心 亂搞)

2021-09-07 23:11:56 字數 2237 閱讀 1846

題意:給出平面上兩個位置a和b。每次跳馬步就是日字,從a到b最少要多少步?

思路:若ab之間的距離小於等於10則直接爆搜。否則,a每次向b方向移動。這裡,若a移動某兩個方向後與b的距離相等,不妨設xy方向的距離分別為detx,dety,即detx+dety相等,那麼接著比較abs(detx-dety),小的優先。看上去沒啥道理。我的理解是比如和為20,那麼detx=20,dety=0,就比detx=dety=10差,因為前者要跳20步吧,後者用不了20步。。

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#define max(x,y) ((x)>(y)?(x):(y))

#define min(x,y) ((x)<(y)?(x):(y))

#define abs(x) ((x)>=0?(x):-(x))

#define i64 long long

#define u32 unsigned int

#define u64 unsigned long long

#define clr(x,y) memset(x,y,sizeof(x))

#define clr(x) x.clear()

#define ph(x) push(x)

#define pb(x) push_back(x)

#define len(x) x.length()

#define sz(x) x.size()

#define pi acos(-1.0)

#define sqr(x) ((x)*(x))

#define for0(i,x) for(i=0;i

#define for1(i,x) for(i=1;i<=x;i++)

#define for(i,a,b) for(i=a;i<=b;i++)

#define forl0(i,a) for(i=a;i>=0;i--)

#define forl1(i,a) for(i=a;i>=1;i--)

#define forl(i,a,b)for(i=a;i>=b;i--)

#define rush() int c; for(scanf("%d",&c);c--;)

#define rush(n)  while(scanf("%d",&n)!=-1)

using namespace std;

void rd(int &x)

void rd(i64 &x)

void rd(u32 &x)

void rd(double &x)

void rd(int &x,int &y)

void rd(u32 &x,u32 &y)

void rd(double &x,double &y)

void rd(int &x,int &y,int &z)

void rd(u32 &x,u32 &y,u32 &z)

void rd(double &x,double &y,double &z)

void rd(char &x)

void rd(char *s)

void rd(string &s)

void pr(int x)

void pr(i64 x)

void pr(u32 x)

void pr(double x)

void pr(char x)

void pr(char *x)

void pr(string x)

point(int _x,int _y)

void get()

point operator+(point a)

point operator-(point a)

int operator<(const point &a) const

};point a,b;

int dx=;

int dy=;

point dis(point a,point b)

int bfs(point a)

for0(i,8)}}

return ans;

}int main()

a=d; ans++;

}pr(ans+bfs(a-b));

}

學習筆記 1 19

abstract 關鍵字 可以修飾類和方法。抽象類 包含抽象方法和構造器,在開發中,會提供抽象類的子類,讓子類例項化。抽象方法 只有方法宣告,沒有方法體。若子類沒有實現父類所有的抽象方法,那麼這個子類也屬於抽象類。模版方法設計模式 抽象類的應用 模版方法的設計模式 public class temp...

119 開始學習CMD

平時都會用到,所以學習下沒有壞處,但是一直沒有找到系統的學習方法,所以自己就零零散散地記錄下,以便自己以後查閱!輸入 cd.可以返回到父資料夾 注 我猜 cd 的全稱應該是 change directory 就是 改變目錄 的意思!注 cd 或是 cd 都是返回根目錄的命令!輸入 cd d f de...

lintcode練習 119 編輯距離

給出兩個單詞word1和word2,計算出將word1 轉換為word2的最少操作次數。你總共三種操作方法 給出 work1 mart 和 work2 karma 返回 3 當i 0時,dp 0,j j,j 0.len word2 表示word2需要刪除j位來使其與word1相同為空 同理當j 0,...