生活随笔
收集整理的這篇文章主要介紹了
傻鸡抓大闸蟹
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
http://120.78.162.102/problem.php?cid=1432&pid=1
http://120.78.162.102/problem.php?id=6252
題解:本題讀懂了就會發現很水,沒讀懂就會無從下手。
證明:
因為輸入數據保證有解,假設有兩只螃蟹a,b初始橫坐標為x1,x2且x2-x1=1,則在任意時刻a,b都將向同一方向運動,即永遠不能抓a和b,與題意不符。
那么有沒有可能兩只螃蟹在中途走到一起?設x2-x1=2,由上面的證明x1+1的位置上無螃蟹,即x1,x2不能向對方移動。
因此任何一只螃蟹在任何時刻都能被抓到。證畢。
方案:從兩頭向中間輸出即可
就是在頭上抓一個,在相應的另一邊抓一個,這樣中間的螃蟹就左走,后右走,相當于不變
只想說連排序都不需要排????
/*
*@Author: STZG
*@Language: C++
*/
#include <bits/stdc++.h>
#include<iostream>
#include<algorithm>
#include<cstdlib>
#include<cstring>
#include<cstdio>
#include<string>
#include<vector>
#include<bitset>
#include<queue>
#include<deque>
#include<stack>
#include<cmath>
#include<list>
#include<map>
#include<set>
//#define DEBUG
#define RI register int
using namespace std;
typedef long long ll;
typedef __int128 lll;
const int N=10000;
const int MOD=1e9+7;
const double PI = acos(-1.0);
const double EXP = 1E-8;
const int INF = 0x3f3f3f3f;
int t,n,m,k,q;
struct node{int x,y,id;bool operator <(const node &S)const{return x<S.x;}}e[N];
int main()
{
#ifdef DEBUGfreopen("input.in", "r", stdin);//freopen("output.out", "w", stdout);
#endifscanf("%d",&n);for(int i=2;i<=2*n;i+=2){e[i/2].id=i/2;scanf("%d%d",&e[i/2].x,&e[i/2].y);}//sort(e+1,e+n+1);t=0;int x=1;int y=n;while(t<n){t++;if(t%2){cout << e[x].id << endl;x++;}else{cout << e[y].id << endl;y--;}}//cout << "Hello world!" << endl;return 0;
}
?
總結
以上是生活随笔為你收集整理的傻鸡抓大闸蟹的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。