【题目链接】:http://hihocoder.com/contest/hiho145/problem/1

【题意】

【题解】



设f[i][j]表示做对i道题,做错j道题能够到达的最好状态是什么;

这里的状态不是单单是指到了第几关;

因为可能同样到达了第4关,但是你前面的到达第4关的状态更好(也就是说它在第4关的分数更多);

所以f[i][j]用一个pair< int,int>表示->(x,y)

x表示到达了第几关,y表示在这一关获得了多少分;

则f[i][j] = max(f[i-1][j]+s,f[i][j-1]+t);

(即枚举最末端的题最对还是做错)

这里的加s和加t,表示的是那个状态加了s分、t分之后能够到达的新的状态是什么;

(到了新的一关就x++,y=0,不足以到新的一关,就y+s,或+t);

这里的比较直接用二元的比较就好;

即x优先,y次之;

同等状态(i,j)显然二元组更大的更优。

最后在i+j<=m的状态里面找first>=n的元组,i顺序枚举,这样找到第一个输出就可以了;



【Number Of WA】



1T+5WA



【完整代码】

  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. #define lson l,m,rt<<1
  4. #define rson m+1,r,rt<<1|1
  5. #define LL long long
  6. #define rep1(i,a,b) for (int i = a;i <= b;i++)
  7. #define rep2(i,a,b) for (int i = a;i >= b;i--)
  8. #define mp make_pair
  9. #define ps push_back
  10. #define fi first
  11. #define se second
  12. #define rei(x) scanf("%d",&x)
  13. #define rel(x) scanf("%lld",&x)
  14. #define ref(x) scanf("%lf",&x)
  15. #define ms(x,y) memset(x,y,sizeof x)
  16. typedef pair<int,int> pii;
  17. typedef pair<LL,LL> pll;
  18. const int dx[9] = {0,1,-1,0,0,-1,-1,1,1};
  19. const int dy[9] = {0,0,0,-1,1,-1,1,-1,1};
  20. const double pi = acos(-1.0);
  21. const int N = 1000+100;
  22. pii f[N][N];
  23. int n,m,s,t,a[N];
  24. pii xin(pii A,int t)
  25. {
  26. int x = A.fi,y = A.se;
  27. if (x>n) return A;
  28. if (y+t>=a[x])
  29. x++,y = 0;
  30. else
  31. y+=t;
  32. return mp(x,y);
  33. }
  34. pii ma(pii x,pii y)//try x<=y
  35. {
  36. int x0 = x.fi,y0 = x.se,x1 = y.fi,y1 = y.se;
  37. if (x0<x1)
  38. return y;
  39. if (x0>x1)
  40. return x;
  41. if (y0<y1)
  42. return y;
  43. return x;
  44. }
  45. int main()
  46. {
  47. //freopen("F:\\rush.txt","r",stdin);
  48. int T;
  49. rei(T);
  50. while (T--)
  51. {
  52. rep1(i,0,1010)
  53. rep1(j,0,1010)
  54. f[i][j]={1,0};
  55. rei(n),rei(m),rei(s),rei(t);
  56. rep1(i,1,n) rei(a[i]);
  57. rep1(i,0,m)
  58. rep1(j,0,m)
  59. {
  60. //答对
  61. if (i)
  62. {
  63. f[i][j] = ma(f[i][j],xin(f[i-1][j],s));
  64. }
  65. //答错
  66. if (j)
  67. {
  68. f[i][j] = ma(f[i][j],xin(f[i][j-1],t));
  69. }
  70. }
  71. int ans = -1;
  72. rep1(i,0,m)
  73. {
  74. rep1(j,0,m)
  75. if (i+j<=m)
  76. {
  77. if (f[i][j].fi>n)
  78. {
  79. ans = i;
  80. break;
  81. }
  82. }
  83. if (ans!=-1) break;
  84. }
  85. if (ans==-1)
  86. puts("No");
  87. else
  88. printf("%d\n",ans);
  89. }
  90. //printf("\n%.2lf sec \n", (double)clock() / CLOCKS_PER_SEC);
  91. return 0;
  92. }

【hiho一下 第145周】智力竞赛的更多相关文章

  1. hiho一下 第145周

    题目1 : 智力竞赛 时间限制:5000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi.小Ho还有被小Hi强拉来的小Z,准备组队参加一个智力竞赛.竞赛采用过关制,共计N个关卡.在第i ...

  2. [Offer收割]编程练习赛3 - 题目3 : 智力竞赛

    智力竞赛 Problem's Link ---------------------------------------------------------------------------- Mea ...

  3. hihocoder #1285 智力竞赛

    传送门 总结: 1.仔细读题 2.仔细分析复杂度 3.不要想当然,乱下结论 时间限制:5000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi.小Ho还有被小Hi强拉来的小Z,准备组队 ...

  4. 圆内,求离圆心最远的整数点 hiho一下第111周 Farthest Point

    // 圆内,求离圆心最远的整数点 hiho一下第111周 Farthest Point // 思路:直接暴力绝对T // 先确定x范围,每个x范围内,离圆心最远的点一定是y轴两端的点.枚举x的范围,再 ...

  5. 【BZOJ5335】[TJOI2018]智力竞赛(二分图匹配)

    [BZOJ5335][TJOI2018]智力竞赛(二分图匹配) 题面 BZOJ 洛谷 题解 假装图不是一个DAG想了半天,.发现并不会做. 于是假装图是一个DAG. 那么显然就是二分答案,然后求一个最 ...

  6. loj#2574. 「TJOI2018」智力竞赛 (路径覆盖)

    目录 题目链接 题解 代码 题目链接 loj#2574. 「TJOI2018」智力竞赛 题解 就是求可重路径覆盖之后最大化剩余点的最小权值 二分答案后就是一个可重复路径覆盖 处理出可达点做二分图匹配就 ...

  7. BZOJ5335:[TJOI2018]智力竞赛——题解

    https://www.lydsy.com/JudgeOnline/problem.php?id=5335 小豆报名参加智力竞赛,他带上了n个好朋友作为亲友团一块来参加比赛. 比赛规则如下: 一共有m ...

  8. hiho一下 第115周:网络流一•Ford-Fulkerson算法 (Edmond-Karp,Dinic,SAP)

    来看一道最大流模板水题,借这道题来学习一下最大流的几个算法. 分别用Edmond-Karp,Dinic ,SAP来实现最大流算法. 从运行结过来看明显SAP+当前弧优化+gap优化速度最快.   hi ...

  9. hihocoder-1285 智力竞赛(区间dp)

    智力竞赛 时间限制:5000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi.小Ho还有被小Hi强拉来的小Z,准备组队参加一个智力竞赛.竞赛采用过关制,共计N个关卡.在第i个关卡中,小 ...

随机推荐

  1. [HNOI2011]XOR与路径

    https://zybuluo.com/mdeditor#1094266 标签(空格分隔): 高斯消元 期望 题面 从 1 号节点开始,以相等的概率,随机选择与当前节点相关联的某条边,并沿这条边走到下 ...

  2. 云栖社区> > 正文 永久免费SSL安全证书Letsencrypt安装使用方法

    ./letsencrypt-auto certonly --standalone --email admin@thing.com -d thing.com -d www.thing.com

  3. IE下元素设置百分比的问题

    场景:近两天在做一个控件,该控件是一个tab型的,并且该tab有可能是两个tab标签,也有可能是多个tab标签,为了能够适应这种动态需求, 在设置标签宽度的时候,直接用的最外层容器除以tab的个数,然 ...

  4. jQueryTools-Scrollable.js

    转载一篇例子,学习使用: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http: ...

  5. 注解配置AOP切面编程

    1.导入先关jar包 2.编写applicationContext.xml,配置开启注解扫描和切面注解扫描 <?xml version="1.0" encoding=&quo ...

  6. JS高级——Function原型链

    基本概念 1.函数可以通过Function new出来,那么Function可以被称作构造函数,被new出来的函数可以被称为一个对象 2.Function既然是构造函数,那么肯定也有原型,它的原型是一 ...

  7. [Windows Server 2012] 安装PHP+MySQL方法

    ★ 欢迎来到[护卫神·V课堂],网站地址:http://v.huweishen.com★ 护卫神·V课堂 是护卫神旗下专业提供服务器教学视频的网站,每周更新视频.★ 本节我们将带领大家:PHP+MyS ...

  8. 顺序表查找及其优化(Java)

    顺序表查找(线性查找): private static void Ordersearch(int[] arr,int num) { for (int i = 0; i < arr.length; ...

  9. CentOS7将firewall切换为iptables防火墙

  10. CAD类型转换

    AcDbEntity *pEnt; AcDbCircle *pcir = AcDbCircle::cast(pEnt); static_cast<AcDbCircle*>(pEnt); p ...