Enclosure POJ
5174 ワード
0:Enclosure
http://poj.openjudge.cn/challenge3/0/
表示
送信
統計
に質問
合計時間制限:
1000ms
メモリの制限:
131072kB
説明
爆零を防ぐためにウォーミングアップ問題が加わった.みんな軽虐~Picks NOI(オンラインシンクロ)に参加した时、みんなが狂ったように「サークルゲーム」を讨论しているのを见て、Picksはこのゲームに対してとても!よし!おかしい!彼は自分でBotを開発して遊びたいと思っている.
しかしPicksのレベルはだめです......複雑なプログラムを書くのは彼には難しいので、彼は簡略化して、フィールドに彼が書いたBotしかなくて、フィールドの大きさは無限です.
リングゲームのルールは、Botが水平または縦に1コマ移動でき、移動するたびに落書きするかどうかを選択でき、落書き状態で軌跡を描くことです.自分が歩いた軌跡の上にいるたびに、囲まれた閉じた図形がすべてになり、この領域の点数が得られ、軌跡が消える.ご注意ください.本題で得られるのは,囲いの地の面積である.彼の幻想的な相手を倒すために、彼は自分に点数Kを限定して、得点がKより少なくない時だけ彼は満足します.彼は少なくとも何回移動するか知りたいと思っています.
データ範囲
入力
1つのテストポイントに複数のデータがあります(10グループを超えません).データのグループごとに:
1行、1つの数:K、意味は問題のようです.
しゅつりょく
データのグループごとに:
1行、1個の数、すなわち最小の回数.
サンプル入力
サンプル出力
ヒント
サンプル1では、右→上→左→下のみ.(または、この図形を描く方法).
%lldで、穴は......
http://poj.openjudge.cn/challenge3/0/
表示
送信
統計
に質問
合計時間制限:
1000ms
メモリの制限:
131072kB
説明
爆零を防ぐためにウォーミングアップ問題が加わった.みんな軽虐~Picks NOI(オンラインシンクロ)に参加した时、みんなが狂ったように「サークルゲーム」を讨论しているのを见て、Picksはこのゲームに対してとても!よし!おかしい!彼は自分でBotを開発して遊びたいと思っている.
しかしPicksのレベルはだめです......複雑なプログラムを書くのは彼には難しいので、彼は簡略化して、フィールドに彼が書いたBotしかなくて、フィールドの大きさは無限です.
リングゲームのルールは、Botが水平または縦に1コマ移動でき、移動するたびに落書きするかどうかを選択でき、落書き状態で軌跡を描くことです.自分が歩いた軌跡の上にいるたびに、囲まれた閉じた図形がすべてになり、この領域の点数が得られ、軌跡が消える.ご注意ください.本題で得られるのは,囲いの地の面積である.彼の幻想的な相手を倒すために、彼は自分に点数Kを限定して、得点がKより少なくない時だけ彼は満足します.彼は少なくとも何回移動するか知りたいと思っています.
データ範囲
入力
1つのテストポイントに複数のデータがあります(10グループを超えません).データのグループごとに:
1行、1つの数:K、意味は問題のようです.
しゅつりょく
データのグループごとに:
1行、1個の数、すなわち最小の回数.
サンプル入力
1
2
8
サンプル出力
4
6
12
ヒント
サンプル1では、右→上→左→下のみ.(または、この図形を描く方法).
%lldで、穴は......
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
using namespace std;
int main(){
//freopen("input.txt","r",stdin);
long long n;
while(~scanf("%lld",&n)){
if(n==1){
puts("4");
}else if(n==2){
puts("6");
}else if(n==3 || n==4){
puts("8");
}else{
long long ans=8;
long long x=(long long)sqrt(n-1);
long long tmp=x*x+1;
if(n-tmp+1<=x)
ans+=2+(x-2)*4;
else
ans+=4+(x-2)*4;
cout<<ans<<endl;
}
}
return 0;
}