摘要:
链接 阅读全文
摘要:
这个就强调一点:一定要分清是线性排列还是环形排列,如果是环形的话,只需要将n+1--2n重新赋一遍值, 但是:!!!s[i]要继续s[i]=s[i-1]+a[i],而且别忘了给f[n+1][n+1] f[2n][2n]赋一遍0 我也在这个上错了好几次! 线性实现: #include<iostream 阅读全文
摘要:
#include<bits/stdc++.h> using namespace std; int dfs (int); int max (int,int); int maxn=0,n,a[10000],f[10000]; int main() { cin>>n; for(int i=1;i<=n;i 阅读全文
摘要:
#include<iostream> using namespace std; int a[210][210],b[210],c[40]; int max(int,int); int n,m,maxn; int main() { cin>>m>>n; for(int i=1;i<=n;i++) ci 阅读全文
摘要:
#include<iostream> #include<cstring> int f[1000][1000],s[10000],a[10000]; int k,n,maxn,miny=100000000; using namespace std; int main() { cin>>n; memse 阅读全文
摘要:
#include<iostream>using namespace std;int a[730],b[730],c[730],d[740],e[740];int n,jishuqi=0,t,he,ii;int main(){ cin>>n; a[1]=1; b[1]=2; c[1]=d[1]=0; 阅读全文
摘要:
倍增法求lca(未编译,可能有失误)int (x,y) { if(d[x]<(d[y]) swap(x,y); for(i=16;i>=1;i--) { if(d[f[x][i]]>=d[y]) x=f[x][i];//d[x]表示其深度;f[x][i]表示其向上2^i个点后的新点//该循环是为了将 阅读全文
摘要:
题目描述: 有一个n×m 的棋盘,在某个点 (x, y) 上有一个马,要求你计算出马到达棋盘上任意一个点最少要走几步。 输入 输入只有一行四个整数,分别为 n, m, x, y。 输出 一个n×m 的矩阵,代表马到达某个点最少要走几步(不能到达则输出−1)。 样例输入 3 3 1 1 复制 样例输出 阅读全文
摘要:
题目描述: 输出自然数1到n所有不重复的排列,即n的全排列,要求所产生的任一数字序列中不允许出现重复的数字。 输入 n(1≤n≤9) 输出 由1~n组成的所有不重复的数字序列,每行一个序列。(每一个数占5个字符) 样例输入 3 复制 样例输出 1 2 3 1 3 2 2 1 3 2 3 1 3 1 阅读全文
摘要:
问题描述: 在 N*N 的棋盘上放置 N 个皇后(n<=10)而彼此不受攻击(即在棋盘的任一行,任一列和任一对角线上不能放置 2 个皇后),编程求解所有的摆放方法。 输入 输入:n 输出 每行输出一种方案,每种方案顺序输出皇后所在的列号,各个数占5个字符。若无方案,则输出no solute! 样例输 阅读全文