摘要: 原题链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=139分析:cantor展开,康托展开用于计算一个排列的序数。公式为: X=a[n]*n!+a[n-1]*(n-1)!+...+a[2]*2!+a[1]*1!+a[0]*0!;0#includeusing namespace std;char s[15];long long fac[15];void F(){ fac[0]=1;fac[1]=1; for(int i=2;i<=12;i++) fac[i]=fac[i-1]*i;}int main(){ int T... 阅读全文
posted @ 2013-07-19 20:45 EtheGreat 阅读(189) 评论(0) 推荐(0) 编辑
摘要: 原题链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=333分析:直接套用欧拉公式即可!mdd的烦恼 1 #include 2 #include 3 #include 4 #include 5 #define maxn 65545 6 using namespace std; 7 int flag[maxn]={0}; 8 int prime[maxn]; 9 int cnt;10 void selPrime()11 {12 cnt=0;13 for(int i=2;i1)res*=n-1;38 return res... 阅读全文
posted @ 2013-07-19 17:50 EtheGreat 阅读(197) 评论(0) 推荐(0) 编辑
摘要: 原题链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=7分析:x与y分开考虑,分别排序,邮局定在最中间的两个数之间就可以了。街区最短路径问题 1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 int x[25],y[25]; 7 int main() 8 { 9 int T,m;10 scanf("%d",&T);11 while(T--)12 {13 scanf("%d",&m);14 for.. 阅读全文
posted @ 2013-07-19 15:20 EtheGreat 阅读(162) 评论(0) 推荐(0) 编辑
摘要: 原题链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=703分析:先考虑不受限制的情况,此时共可以修n*(n-1)/2条隧道;所有的place组成一个多边形,多边形内部的三角形共有n*(n-1)/2个,考虑限制条件,那么每两个相邻的三角形组成的四边形的对角线应该删除,共ceiling[n*(n-2)/4]条边;所以答案就是n*n/4.另解:dp[i]=i*(i-1)/2-dp[i-1];理解:i*(i-1)/2=i+(i-1)*(i-2)/2,那么(i-1)*(i-2)/2-dp[i-1]就表示前一个不满足限制条件的个数,当增加一个点时,就 阅读全文
posted @ 2013-07-19 14:41 EtheGreat 阅读(206) 评论(0) 推荐(0) 编辑