锘??xml version="1.0" encoding="utf-8" standalone="yes"?>国产精品视频久久久,色悠久久久久久久综合网,99久久做夜夜爱天天做精品http://www.shnenglu.com/goAheadtw/category/15892.htmlhahazh-cnWed, 19 Jan 2011 03:26:21 GMTWed, 19 Jan 2011 03:26:21 GMT60Timus 1087(recursion game)http://www.shnenglu.com/goAheadtw/articles/138752.htmltwtwTue, 18 Jan 2011 07:23:00 GMThttp://www.shnenglu.com/goAheadtw/articles/138752.htmlhttp://www.shnenglu.com/goAheadtw/comments/138752.htmlhttp://www.shnenglu.com/goAheadtw/articles/138752.html#Feedback0http://www.shnenglu.com/goAheadtw/comments/commentRss/138752.htmlhttp://www.shnenglu.com/goAheadtw/services/trackbacks/138752.html1087. The Time to Take Stones
Time Limit: 1.0 second Memory Limit: 16 MB
You probably know the game where two players in turns take 1 to 3 stones from a pile. Looses the one who takes the last stone. We'll generalize this well known game. Assume that both of the players can take not 1, 2 or 3 stones, but k1, k2, …, km ones. Again we'll be interested in one question: who wins in the perfect game. It is guaranteed that it is possible to make next move irrespective to already made moves.
Input
The first line contains two integers: n and m (1 ≤ n ≤ 10000;1 ≤ m ≤ 50) 鈥?they are an initial amount of stones in the pile and an amount of numbers k1, …, km. The second line consists of the numbers k1, …, km, separated with a space (1 ≤ ki ≤ n).
Output
Output 1, if the first player (the first to take stones) wins in a perfect game. Otherwise, output 2.
Sample
input
output
17 3
1 3 4
2
Problem Author: Anton Botov Problem Source: The 3rd high school children programming contest, USU, Yekaterinburg, Russia, March 4, 2001
/* "Looses the one who takes the last stone" 鈥斺?nbsp;the one takes the last stone loses the game ! */ #include <stdio.h> #include <memory> #include <iostream> #include <algorithm> #include <cstring> #include <vector> #include <map> #include <cmath> #include <set> #include <queue> #include <time.h> #include <limits> usingnamespace std; #define N 10005 #define M 55 int step[M], n, m; bool state[N]; bool input(){ if(scanf("%d%d", &n, &m) == EOF) returnfalse; int i; for(i =0; i < m; i++) scanf("%d", step+i); returntrue; } void solve(){ memset(state, 0, sizeof(bool) * (n+1)); int i, j, u; for(i =1; i <= n; i++){ for(j =0; j < m; j++){ if((u = i - step[j]) >=0){ if(u ==0){ state[i] =false; }else{ if(!state[u]){ state[i] =true; break; } } } } } //for(i = 0; i <= n; i++) printf("s[%d]=%d\n", i, state[i]); if(state[n]) printf("1\n"); else printf("2\n"); } int main(){ #ifndef ONLINE_JUDGE freopen("in.txt", "r", stdin); //freopen("out.txt", "w", stdout); #endif while(input()) solve(); return0; }
]]>Timus 1045 (game on a tree)http://www.shnenglu.com/goAheadtw/articles/138667.htmltwtwMon, 17 Jan 2011 06:13:00 GMThttp://www.shnenglu.com/goAheadtw/articles/138667.htmlhttp://www.shnenglu.com/goAheadtw/comments/138667.htmlhttp://www.shnenglu.com/goAheadtw/articles/138667.html#Feedback0http://www.shnenglu.com/goAheadtw/comments/commentRss/138667.htmlhttp://www.shnenglu.com/goAheadtw/services/trackbacks/138667.html
#include <stdio.h> #include <memory> #include <iostream> #include <algorithm> #include <cstring> #include <vector> #include <map> #include <cmath> #include <set> #include <queue> #include <time.h> #include <limits> usingnamespace std; #define N 1005 struct e{ int v; e* nxt; }es[N*2]; e* fir[N]; int en, n, st, l; bool state[N]; inline void add_e(int u, int v){ es[en].v = v; es[en].nxt = fir[u]; fir[u] =&es[en++]; } bool input(){ if(scanf("%d%d", &n, &st) == EOF) returnfalse; st--; int i, u, v; for(i =0; i < n; i++) fir[i] = NULL; en =0; for(i =1; i < n; i++){ scanf("%d%d", &u, &v); u--; v--; add_e(u, v); add_e(v, u); } returntrue; } void dfs(int u, int fa){ e* cur; int v; bool hasSon =false; for(cur = fir[u]; cur; cur = cur->nxt){ if((v = cur->v) != fa){ hasSon =true; dfs(v, u); } } if(!hasSon){ state[u] =false; //蹇呰觸鎬?/span> }else{ state[u] =false; for(cur = fir[u]; cur; cur = cur->nxt){ if((v = cur->v) != fa){ if(!state[v]){ if(u == st){ if(state[u]){ if(l > v +1) l = v +1; }else{ state[u] =true; l = v +1; } }else state[u] =true; } } } } } void solve(){ dfs(st, -1); if(state[st]) printf("First player wins flying to airport %d\n", l); else printf("First player loses\n"); } int main(){ #ifndef ONLINE_JUDGE freopen("in.txt", "r", stdin); //freopen("out.txt", "w", stdout); #endif while(input()) solve(); return0; }