摘要:
题目大意:在一个有向图中,每两点间通信需要一定的时间,但同一个强连通分量里传递信息不用时间,给两点u,v求他们最小的通信时间。解题过程:1.首先把强连通分量缩点,然后遍历每一条边来更新两个强联通分量之间的距离。。2.直接Floyd会超时,应该用dijstra或者spfa做k次最短路。犯的错误:前向星... 阅读全文
摘要:
第一题:题目大意:一个n的全排列A[i]是单峰的,当且仅当存在某个x使得A[1]A[x+1]>...>A[n]。 试求 n 的单峰全排列的个数 mod 1234567。n<=2 000 000 000解题过程:1.首先所谓的”峰“必定是数字n,那么根据n的位置来讨论,可以发现,n在第i个位置的方案数... 阅读全文
摘要:
1 void dfs(int u,int father) 2 { 3 int child=0; 4 dfn[u]=low[u]=++dfs_clock; 5 6 for (int c=head[u];c;c=nxt[c]) 7 { 8 in... 阅读全文
摘要:
1 int get_SG(int x) 2 { 3 if (SG[x]!=-1) 4 return SG[x]; 5 bool v[110]={0}; 6 for (int i=1;i=0) 8 v[get_SG(x-s[i])]=1... 阅读全文
摘要:
1 void tarjan(int u) 2 { 3 dfn[u]=low[u]=++dfs_clock; 4 stack_push(u); 5 6 for (int c=head[u];c;c=nxt[c]) 7 { 8 int v=to... 阅读全文
摘要:
第一题:题目大意:使得 x^x 达到或超过 n 位数字的最小正整数 x 是多少?n=n;2.考虑到ln(x)/ln(2)+1是单调增的,所以只要二分x就可以快速求解。第二题:题目大意:给出n个有序队列,求出所有数中最小的m个。n,m<=10 000解题过程:1.这题也是NOI导刊看到过的。。写一个小... 阅读全文