pfiesteria's user data
Current world rank: #5136
(2 points)
Country: TAIWAN, PROVINCE OF CHINA
Modify user data
My job application
Problems solved Solutions submitted Solutions accepted Wrong Answer Compile Error Runtime Error Time Limit Exceeded
21 178 53 43 7 16 59
History of submissions
(plaintext version)
List of solved classical problems:
ADDREV GNY07A PRIME1
CANDY JULKA RESN04
CANTON NHAY SAMER08F
DIVSUM NSTEPS SBANK
FASHION ONP SQRBR
FCTRL PALIN TEST
FCTRL2 PIR TOANDFRO
TODO list of classical problems:
2011年12月29日 星期四
2011年2月6日 星期日
UVa : 11705 (Grasshopper) « Solved Programming Problems
UVa : 11705 (Grasshopper) « Solved Programming Problems:
//用link的Code來釐清題意,之後寫出以下AC Code.
C++ code colored by C++2HTML
//用link的Code來釐清題意,之後寫出以下AC Code.
#include <cstdlib> #include <iostream> using namespace std; int g_input[50][50], g_dis[50][50]; char ga[50][50]; int jump(char direct, int y, int x, int row, int col) { if('N' == direct) { if(y - g_input[y][x] >= 0) { return g_dis[y - g_input[y][x]][x]; } else return 0; } else if('W' == direct) { if(x - g_input[y][x] >= 0) { return g_dis[y][x - g_input[y][x]]; } else return 0; } else if('E' == direct) { if(x + g_input[y][x] < col) { return g_dis[y][x + g_input[y][x]]; } else return 0; } else if('S' == direct) { if(y + g_input[y][x] < row) { return g_dis[y + g_input[y][x]][x]; } else return 0; } } int proc(int i, int j, int row, int col, char d[][50]) { int min=200,temp; temp = jump('N',i,j,row,col); if(temp > 0) { min = temp; d[i][j] = 'N'; } temp = jump('W',i,j,row,col); if(temp > 0) { if(temp < min) { min = temp; d[i][j] = 'W'; } } temp = jump('E',i,j,row,col); if(temp > 0) { if(temp < min) { min = temp; d[i][j] = 'E'; } } temp = jump('S',i,j,row,col); if(temp > 0) { if(temp < min) { min = temp; d[i][j] = 'S'; } } if(min != 200)return min; else return 0; } int proc_last(int i, int j, int row, int col, char d[][50]) { int min=200,temp; temp = jump('S',i,j,row,col); if(temp > 0) { if(i + g_input[i][j] < row) { if(temp < g_dis[i][j] - 1) { min = temp; d[i][j] = 'S'; g_dis[i][j] = temp + 1; } else if(temp == g_dis[i][j] - 1 && d[i][j] == 'X') { min = temp; d[i][j] = 'S'; g_dis[i][j] = temp + 1; } } } temp = jump('E',i,j,row,col); if(temp > 0) { if(j + g_input[i][j] < col) { if(g_dis[i][j + g_input[i][j]] < g_dis[i][j] - 1) { min = temp; d[i][j] = 'E'; g_dis[i][j] = temp + 1; } else if(temp == g_dis[i][j]-1 && (d[i][j] == 'X' || d[i][j] == 'S')) { min = temp; d[i][j] = 'E'; g_dis[i][j] = temp + 1; } } } temp = jump('W',i,j,row,col); if(temp > 0) { if(j - g_input[i][j] >= 0) { if(g_dis[i][j - g_input[i][j]] < g_dis[i][j] - 1) { min = temp; d[i][j] = 'W'; g_dis[i][j] = temp + 1; } else if(temp == g_dis[i][j]-1 && (d[i][j] == 'X' || d[i][j] == 'S' || d[i][j] == 'E')) { min = temp; d[i][j] = 'W'; g_dis[i][j] = temp + 1; } } } temp = jump('N',i,j,row,col); if(temp > 0) { if(i - g_input[i][j] >= 0) { if(g_dis[i - g_input[i][j]][j] < g_dis[i][j] - 1) { min = temp; d[i][j] = 'N'; g_dis[i][j] = temp + 1; } else if(temp == g_dis[i][j] - 1 && d[i][j] != 'N') { min = temp; d[i][j] = 'N'; g_dis[i][j] = temp + 1; } } } if(min != 200)return min; else return 0; } void pt(int row, int col) { int i,j; for(i=0;i<row;i++) { for(j=0;j<col;j++) { cout<<ga[i][j]; } cout<<endl; } } void debug_d(int row, int col) { int i,j; for(i=0;i<row;i++) { for(j=0;j<col;j++) { cout<<g_dis[i][j]<<" "; } cout<<endl; } } int main() { bool end = false; int row, col, i, j, temp; while(1) { cin>>row>>col; if(0 == row || 0 == col)break; for(i=0; i<row; i++) { for(j=0; j<col; j++) { cin>>g_input[i][j]; } } memset(g_dis, 0, sizeof(g_dis)); memset(ga, 'X', sizeof(ga)); end = false; ga[0][0] = '*'; for(j=1; j<col; j++) { if(g_input[0][j] == j) { ga[0][j] = 'W'; g_dis[0][j] = 1; } } for(i=1; i<row; i++) { if(g_input[i][0] == i) { ga[i][0] = 'N'; g_dis[i][0] = 1; } } while(end != true) { end = true; for(i=0; i<row; i++) { for(j=0; j<col; j++) { if(0 == i && 0 == j)continue; if(g_dis[i][j] > 0)continue; else { temp = proc(i,j,row,col,ga); if(temp > 0) { g_dis[i][j] = temp+1; end = false; } } }//end for j }//end for i }//while //last proc end = false; while(end != true) { //debug_d(row, col); //system("PAUSE"); end = true; for(i=0; i<row; i++) { for(j=0; j<col; j++) { if(0 == i && 0 == j)continue; else { temp = proc_last(i,j,row,col,ga); if(temp > 0) { //temp //cout<<"ga["<<i<<"]["<<j<<"]="<<ga[i][j]<<endl; //end temp*/ end = false; } } }//for j }//for i }//while //end last proc pt(row, col); cout<<endl; }//while(1) return 0; }
訂閱:
文章 (Atom)
Codewars: The Baum-Sweet sequence
這題列在7 kyu,我覺得有點難度,應該有6 kyu的程度了。 這題有數學題的感覺,我因為害怕TLE,加上我有感冒, 因此是直接問ChatGPT 4o怎麼解決, 沒想到一開始,ChatGPT是提供TLE的方法, 我再問ChatGPT要如何加快, 才給我夠快的方法, 看了ChatG...
-
之前安裝photoshop CS2常常不能破解, 今天總算安裝成功, 原來是忘了執行"crack.exe"。 詳細step as follows: 1.安裝photoshop cs2,在安裝過程中,必須"一直按下一步", 不能改目錄位置,也...
-
今天中午,跟老姐一起看一公升的眼淚DVD, 後來老媽也加入來看, 看完之後,覺得還不錯, 劇中維持日劇一貫的風格,場景不多, 音樂非常優美,出場的人物不多, 主要圍繞在亞也、亞也他媽媽和醫生、同學間, 一公升的眼淚,是在1986年出的,現在也有中譯版了, 有興趣的網友可以去 博客...
-
不曉得是Pygame本身的缺陷或bug,Pygame程式執行一段時間,必需要呼叫event一下,否則程式會變成沒有回應的情況,而程式畫面也會暫時停止更新。解決方法,就是確定程式沒互動時,get一下event,但也不是隨時都可以get event,因為當有event要處理時,例如...