蓝桥杯算法提高VIP-邮票面值设计

  1. #include<iostream>
  2. #include<vector>
  3. #include<array>
  4. using namespace std;
  5. int ans[15]={0};
  6. int temp[15]={0};
  7. int n, k, max_res=0;
  8. int dp[3000];
  9. int get_continuity(){
  10. for(int i =1; i<temp[k]*n; i++){
  11. dp[i]=0x0fffffff;
  12. for(int j =1; temp[j]<=i && j<=k; j++){
  13. dp[i] = min(dp[i], dp[i-temp[j]]+1);
  14. }
  15. if(dp[i]>n){
  16. return i-1;
  17. }
  18. }
  19. }
  20. void dfs(int cur){
  21. if(cur==k+1){
  22. int t = get_continuity();
  23. if(max_res<t){
  24. for(int i=1; i<=k; i++){
  25. ans[i]=temp[i];
  26. }
  27. max_res=t;
  28. }
  29. return;
  30. }
  31. for(int i = temp[cur-1]+1; i<=temp[cur-1]*n+1; i++){
  32. temp[cur]=i;
  33. dfs(cur+1);
  34. }
  35. }
  36. int main()
  37. {
  38. dp[0]=0;
  39. cin>>n>>k;
  40. dfs(1);
  41. for(int i =1; i<=k; i++){
  42. cout<<ans[i]<<" ";
  43. }
  44. cout<<endl<<"MAX="<<max_res;
  45. return 0;
  46. }
点赞(0)
 

0 分

0 人评分

 

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论