//这属于完全错排问题 int totalWrong(int n) {     vector<int>dp(n+1,0);     dp[1]=0;dp[2]=1;     for(int i=3;i<=n;++i)         dp[i]=(i-1)*(dp[i-1]+dp[i-2]);     return dp[n]; } //可以看看只跟前两个变量值有关,所以可以使用两个变量来节省空间 int totalWrong(int n) {    int a=0,b=1; int ans=1;     for(int i=3;i<=n;++i){ ans=(i-1)*(a+b); a=b;b=ans; }     return (n==1)?0:ans; }
点赞 评论

相关推荐

02-28 01:18
已编辑
南昌大学 后端工程师
黑皮白袜臭脚体育生:把开源经历放个人项目上边应该更好,就像大部分人都把实习经历放个人项目上边
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务