随笔分类 - HDUOJ
hdu online judge
摘要:/*NIM基础题*/#include <cstdio>int N,A[200001],ans;int main(){ while(scanf("%d",&N)==1) { if(!N) break; ans = 0; for(int i=0;i<N;i++) { scanf("%d",A+i); ans ^= A[i]; } if(ans){printf("Yes\n"); for(int i=0;i<N;i++) { if( A[i]>=(ans^A[i]) ) { printf("%
阅读全文
摘要:/*树的删边游戏,sg游戏的一种。sg值的计算是这样的。。定理: 叶子节点的sg为0,中间节点的sg值等于所有子节点的sg加1后的异或*/#include <cstdio>#include <vector>using namespace std;int N;vector<int> G[100001];int sg[100001];bool used[100001];int dfs(int x){ int& cur = sg[x]; if(cur!=-1) return cur; cur = 0; used[x] = true; for(int i=G
阅读全文
摘要:/*这是个很有意思的sg游戏问题。 看出每堆石块的数值非常大,不可能计算所有的sg值。那么只能找规律了根据规律直接计算给定的石块个数的sg值。*/#include <cstdio>int T,N;int a,ans;int main(){ scanf("%d",&T); while(T--) { scanf("%d",&N); ans = 0; for(int i=0;i<N;i++) { scanf("%d",&a); if( a%4==0 ) ans^=(a-1); else if( (a
阅读全文
摘要:/*有SJ 定理:对于任意的一个 Anti-SG 游戏,如果我们规定当局面中所有单一游戏的 SG 值为 0 时游戏结束,则先手必胜当且仅当以下两个条件满足任意一个:(1)游戏的 SG 函数不为 0,且游戏中某个单一游戏的 SG 函数大于1。(2)游戏的 SG 函数为 0,且游戏中没有单一游戏的 SG 函数大于 1。*/#include <cstdio>int T;int N;int main(){ int a,ans,k; scanf("%d",&T); while(T--) { scanf("%d",&N); k = 0;
阅读全文
摘要:/*限制路径的最短路径问题,而且多次查询。顶点个数不多使用floyd算法。限制路径,要注意排序。*/// include file#include <cstdio>#include <cstdlib>#include <cstring>#include <cmath>#include <cctype>#include <ctime>#include <iostream>#include <sstream>#include <fstream>#include <iomanip>
阅读全文
摘要:/*我实现的LCA tarjan算法(离线)*/// include file#include <cstdio>#include <cstdlib>#include <cstring>#include <cmath>#include <cctype>#include <ctime>#include <iostream>#include <sstream>#include <fstream>#include <iomanip>#include <bitset>#in
阅读全文
浙公网安备 33010602011771号