1. 程式人生 > >17.10.04

17.10.04

spa tabs val string cst first art ron false

  • 中秋節到了呢。
  • 上午
    • 入門OJ 2062: [Noip模擬題]計蒜姬
    • 看似搜索樹很大,但仔細觀察後發現:

      X=X-X這一操作好像沒有用

      X=X/X也就最多提供一個值為1的狀態

      那麽就只剩下X=X+X和X=X*X這兩個搜索方向,而且狀態值的增長速度很快,那麽一個BFS就好了

      代碼:

      #include<queue> 
      #include<cstdio>
      #include<cstring>
      #include<iostream>
      #define ll long long
      #define node(a,b) (node){a,b}
      using namespace std;
      struct node{
      	ll val,stp;
      };
      queue<node> q;
      ll x,y;
      int main(){
      	scanf("%lld%lld",&x,&y);
      	q.push(node(x,0)); if(x!=1)q.push((node(1,1)));
      	node u; ll v;
      	while(!q.empty()){
      		u=q.front(); q.pop();
      		if(u.val==y) {printf("%lld",u.stp); exit(0);}
      		v=u.val*2; if(v<=y) q.push(node(v,u.stp+1));
      		v=u.val*u.val; if(v<=y&&v!=1) q.push((node(v,u.stp+1)));
      	}
      	printf("-1");
      	return 0;
      }
    • 入門OJ
  • 下午
  • 晚上
  • End

17.10.04