HDU Queuing
原题链接:
思路:本人比较菜,递推想了半天还是没看出来,去膜拜了一顿大佬,终于懂了。网上大部分都是递推+快速幂。然而我发现不用快速幂也可以水过,只需要把大数组换成char类型就可以卡过内存了
#include
using namespace std;
const int maxn=1e6+5;
int L,M;
//用char型的话内存(30*10^6)B近似于30000KB < 32768KB
char dp[maxn][31];
void init(){for(int i=1;i<=30;i++){dp[1][i]=2;dp[2][i]=4;dp[3][i]=6;dp[4][i]=9;}for(int i=5;ifor(int j=1;j<=30;j++){/*对于m结尾的串dp[i-1][j]对于f结尾的串又分为mmff和mmf,对应dp[i-4][j]和dp[i-3][j]*/dp[i][j]=(dp[i-1][j]+dp[i-3][j]+dp[i-4][j])%j;}}
}
int main(){//freopen("in.txt","r",stdin);init();while(cin>>L>>M){cout<return 0;
}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
