摘要:
题目要求算出大小关系的所有情况,我们把相等的放在一起,他们之间没有大小关系,形成分组,这个就是由第二类斯特灵数算出来的,在对分好的组进行全排列。 1 #include 2 typedef long long i64; 3 int main() 4 { 5 int T,n; 6 i64 s[150][150],f[150]; 7 scanf("%d",&T); 8 f[0]=1; 9 for(int i=1;i<=100;i++)10 {11 s[i][i]=1;s[i][1]=1;f[i]=f[i-1]*i%20090126;12... 阅读全文
摘要:
在钥匙与房间的所有情况中,我们知道当手中没有未开启的房间门的钥匙时我们需要破坏一扇门。在已开启的门中,钥匙作为指示的方向,是房间号码形成了一个环。而针对每种情况,形成的环数就是所要破坏的门的数量。所以要找寻k以内的环数的情况,并且因为1号门不能破坏,所以要减去,以1号门为单独的一个环且符合情况的数量。 1 #include 2 #include 3 typedef long long i64; 4 int main() 5 { 6 i64 s[25][25],f[25]; 7 int T,n,k,i,j; 8 memset(s,0,sizeof(s)); 9 s... 阅读全文
摘要:
最长公共子序列 1 #include 2 #include 3 #include 4 using namespace std; 5 int main() 6 { 7 int n,m,a1[105],a2[105],a[105][105],count=0; 8 while(scanf("%d%d",&n,&m)!=EOF) 9 {10 count++;11 if(n==0&&m==0)12 break;13 for(int i=0;i<n;i++)14 scanf("%d",&a1[i]);1... 阅读全文
摘要:
题不算难,记录路径的时候有点麻烦,需要去判断在相等的时候不用更新,然后搜回去就行了。 1 #include 2 #include 3 #include 4 using namespace std; 5 struct ele 6 { 7 int w; 8 int s; 9 int num;10 } el[1050];11 int cmp(ele a,ele b)12 {13 return a.wel[k].s)30 d[j+1][k]=max(d[j][j]+1,d[j][k]);31 else d[j+1][k]=... 阅读全文