作者bc5678 ( )
看板C_and_CPP
標題Re: ACM 10696 ... 迴圈只比遞迴快1秒
時間Fri Oct 2 00:15:52 2009
※ 引述《ssagit (ssagit)》之銘言:
: 花了三個小時, 能用的髒方法幾乎用上了,
: 只剩用一個 buffer 一次輸出和 asm 沒用上而已,
: 時間是 0.131, 目前是第 8 名,
: 有 Link 有真相,
: http://acm.uva.es/p/problemstat.php?p=:10696
即使用了賤招還是無法rank 1, 只能到rank 3 好孩子請勿學習XD
但這已經是理論值速度的極限了吧? 連讀input都省了...前面兩名是怎麼回事
#include <fcntl.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/shm.h>
#define INPUT_NUMBER 140000
int main()
{
int shmid = shmget((key_t)5678, INPUT_NUMBER*(4+4+1+7+6), 0666);
char *wbuf = shmat(shmid, NULL, 0);
int n = *(int*)wbuf;
write(1, wbuf + 4, n);
return 0;
}
另外100的3n+1 problem這樣做也只能到0.004而已, 還是果然要看server狀況而定?
或是有比shared memory更快的IPC?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 112.104.9.30
→ tiyun:嗚嗚 看無 10/02 00:17
→ tkcn:input/output 做 buffer 可以快不少 10/02 00:25
推 cplusplus:玩到這樣就已經失去意義了吧 |||| 10/02 01:01
→ bc5678:原本是想把測資偷出來...不過失敗了XD 10/02 06:44
推 sunneo:沒想到這函式沒有ban掉 10/02 23:49
推 Killercat:=__=a 我以為ACM只能使用native lib說... 10/03 12:23