2009年8月14日 星期五

UVa 10071 Back to High School Physics

Back to High School Physics ....
真的很像高中物理題目...在紙上推導了一下


#include <stdio.h>

int main(){
int v,t;
while( scanf("%d %d", &v, &t)==2 )
printf("%d\n", 2*v*t );
return 0;
}

2009年8月13日 星期四

UVa 10055 Hashmat the Brave Warrior

解題策略

看似簡單,的確也不難,只是有很基本的東西要注意。XDDD

附上測資
0 4294967296
2 4294967296
0 4294967295
2 4294967295

這題測資剛好會超過int(long)的有效範圍,所以必須用 long long 或者 double。

閒聊

ACM真是有趣....而且殘酷....在最基本的地方栽跟頭,毫不留情。

#include <cstdio>
#include <cmath>
int main(){

    double hashmat, enemy;

    while( scanf("%lf %lf ", &hashmat, &enemy )==2 )
        printf("%.0lf\n", fabs( enemy-hashmat ) );

    return 0;
}

2009年8月10日 星期一

UVa 10038 Jolly Jumpers


#include<iostream>
#include<bitset>
using namespace std;

#define MAXSIZE 3000

int main(){

#ifndef ONLINE_JUDGE
freopen("10038.in", "r", stdin);
#endif

int length; //the length of sequence
int seq[MAXSIZE];
bitset<MAXSIZE> s;

//for each case
while( scanf("%d ",&length)==1 ){

//read sequence
for(int i=0;i<length;++i)
scanf("%d ", &seq[i] );

if(length==1){
puts("Jolly");
continue;
}

s.reset(); //init set

//add into set
for(int i=1;i<length;++i){
int diff = abs( seq[i] - seq[i-1] );
if(diff>0 && diff<length)
s.set(diff);
}

//judge
if( s.count() == length-1 )
puts("Jolly");
else
puts("Not jolly");
}
return 0;
}


一次AC !!! 太爽啦~

做法就不講了,我是用Algorithmist的作法,如下
http://www.algorithmist.com/index.php/UVa_10038

Set應用題,非常簡潔俐落的作法...虧我之前還在想一堆有的沒的。
bitset的速度也讓我驚豔, 0.008s ,相當的快!!