題意:給出平面上兩個位置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,...