T1:

压岁钱:

有N个人,给出他们的名字跟过年收到的每一笔压岁钱,求压岁钱总和最多的童鞋是哪个。

压岁钱为不超过 100000 的整数
每一笔压岁钱中间用至少一个空格隔开
一行s总长不超过 255 个。
数据保证答案唯一
对 30%的数据: n ≤ 3
对 60%的数据: n ≤ 10
对 100%的数据:n ≤ 50

题解:
暴力枚举求出每个童鞋的压岁钱总和然后找最大值,
只需要注意一下字符与数字之间转化的细节即可。

时间复杂度:O(∑length(s))

varmax,i,j,k,l,n:longint;t,s,d,cmax:string;beginreadln(n);for l:=1 to n dobeginreadln(s);k:=pos(' ',s);t:=copy(s,1,k-1);delete(s,1,k);s:=s+' ';k:=pos(' ',s);i:=0;while k<>0 dobegind:=copy(s,1,k-1);delete(s,1,k);val(d,j);i:=i+j;k:=pos(' ',s);end;if i>max thenbeginmax:=i;cmax:=t;end;end;writeln(cmax);
end.

T2:

砍伐树木:

有N棵树,mxy可以锯掉所有的树比H高的部分(当然,树木不高于 H 米的部分保持不变)。mxy就得到树木被锯下的部分。

例:
一行树的高度分别为 20,15,10 和 17 米
mH为15米,
切割后树木剩下的高度将是 15,15,10 和 15 米
而 mxy 将
从第1棵树得到 5 米,从第4棵树得到 2 米,
共得到 7 米木材。

找出最大的整数高度 H,使得 ta 能得到的木材至少为 M 米。

对于 30%的数据, 1 ≤ N ≤ 10,1 ≤ M ≤ 30;
对于 70%的数据, 1 ≤ N ≤ 1000,1 ≤ M ≤ 10000;
对于 100%的数据,1≤ N ≤ 1000000,1 ≤ M ≤ 2000000000。
每棵树的高度,值均不超过 1 000 000 000
保证所有木材长度之和大于 M,因此必然有解

题解:
二分答案:
直接枚举肯定会炸:
我们发现答案的范围在[0..max{ai}]
所以我们去二分这个范围:
过分满足即>m,我们就向后二分
刚好满足就输出
没满足即 < m,我们就向前二分
如果没有刚好满足的情况,
二分以后的r就是最优的
时间复杂度:O(N* log(max{ai}))

vara:array [0..1000001] of longint;l,r,mid,ans,i,h,n:longint;m,j:int64;
beginreadln(n,m);for i:=1 to n dobeginread(a[i]);if a[i]>r then r:=a[i];end;l:=1;while l<=r dobeginmid:=(l+r) div 2;j:=0;for i:=1 to n doif a[i]>mid then j:=j+(a[i]-mid);if j>m then l:=mid+1else if j<m then r:=mid-1else beginwriteln(mid);halt;end;end;writeln(r);
end.

T3:

恶作剧:

给定一个数字字符串S,用最少次数的加法让字符串等于一个给定的目标数字。每次加 法就是在字符串的某个位置插入一个加号。在需要的所有加号都插入后,就象做普通加法那样来求值。
例:
考虑字符串”12”,做 0 次加法,我们得到数字 12。插入1个加号,我们得到1+2=3。因此,这个例子中,最少用 1 次加法就得到3。
考虑字符串”303”和目标数字6,最佳方法不是”3+0+3”,而是”3+03”。能这样做是因为 1 个数的前导0不会改变它的大小。

对于 16%的数据: 1 ≤ S 的长度 ≤ 5;
对于 80%的数据: 1 ≤ S 的长度 ≤ 10;
对于 100%的数据:1 ≤ S 的长度 ≤ 40,0 ≤ N ≤ 1000。

题解:
这题很多人用了记忆化,不过我用的是DP:
我们设f[i,j]表示S前i位变成了数j最少用了多少次加法。
然后我们很容易得到转移:
f[i,j]=f[k,j-l]+1
很明显,l这个数就是s[k+1..i]这个子串的数字形式!
所以我们用一个数组去预处理这些子串的数
然后就可以推过去了,注意一下初值还有预处理的任意一个数都不能>N即可

时间复杂度:O(S的长度*N)

varp:array [0..1001,0..1001] of longint;f:array [0..41,0..1001] of longint;a:array [0..1001] of longint;i,j,k,n,m:longint;s,t:string;function min(aa,bb:longint):longint;
beginif aa>bb then exit(bb);exit(aa);
end;beginreadln(s);n:=pos(' ',s);t:=copy(s,n+1,length(s)-n);delete(s,n,length(s)-n+1);n:=length(s);val(t,m);for i:=1 to n doa[i]:=ord(s[i])-48;for i:=1 to n dofor j:=i to n doif (p[i,j-1]*10+a[j]<=m) and (p[i,j-1]<>-1)then p[i,j]:=p[i,j-1]*10+a[j]else p[i,j]:=-1;for i:=1 to n dofor j:=0 to m dof[i,j]:=maxlongint div 5;if p[1,1]=-1 thenbeginwriteln(-1);halt;end;f[1,a[1]]:=0;for i:=2 to n dobeginfor j:=1 to i-1 dofor k:=0 to m doif f[j,k]<>maxlongint div 5 thenif p[j+1,i]<>-1 thenif k+p[j+1,i]<=m thenf[i,k+p[j+1,i]]:=min(f[i,k+p[j+1,i]],f[j,k]+1);if p[1,i]<>-1 thenf[i,p[1,i]]:=0;end;if f[n,m]<>maxlongint div 5then writeln(f[n,m])else writeln(-1);
end.

T4:

卡牌游戏:

题目大意:
N 个 mxy 正在玩游戏:桌子上有 M 张卡片,这 M 张卡片分别有一个唯一的 1~M 的编号。N 个 mxy 在桌子上抢牌。每个人最后的得分是所得的所有卡片编号的乘积(如果一张卡片都没取,得分为 1)。
然而本体 mxy 把把都输,为了验证自己是不是真的是幸运 E,她决定检验一下是否有人在说谎。
给出T组N,M以及对应的N个Ai表示每个人报出的得分,不可能没有人说谎就输出Yes
可能没有人说谎就输出No

对于 30%的数据: N ≤ 3, M ≤ 10, Ai ≤ 100;
对于 100%的数据: N ≤ 5, M ≤ 100, Ai ≤ 50000, T ≤ 10;

题解:
这题就是裸搜+剪枝:
注意一下对于一个ai,以及我们搜到现在ci的值,
我们可以让它要满足一些条件才能往下做,这就是剪枝:
①因为ai mod ci必定=0,所以我们判断ai div ci mod j=0因为ci*p=ai,那么p必须是j的倍数!
②ci*j≤ai
③每次向后搜,避免重复的枚举!
然后注意标记走过的点去回溯~

vard:array [0..1001] of boolean;a:array [0..6] of longint;c:array [0..6] of longint;k,i,j,n,m,t:longint;f:boolean;procedure dfs(op,dep:longint);
vari:longint;
beginif dep>n then f:=true;if f then exit;for i:=op to m doif (a[dep] div c[dep] mod i=0) and (not(d[i])) and (c[dep]*i<=a[dep]) thenbeginc[dep]:=c[dep]*i;d[i]:=true;if c[dep]=a[dep]then dfs(1,dep+1)else dfs(i+1,dep);d[i]:=false;c[dep]:=c[dep] div i;end;
end;beginreadln(t);for k:=1 to t dobeginreadln(n,m);for i:=1 to m do d[i]:=false;for i:=1 to n do c[i]:=1;for i:=1 to n do read(a[i]);f:=false;dfs(1,1);if f then writeln('No')else writeln('Yes');end;
end.

SSL 模拟赛 总结(2017.10.25)相关推荐

  1. ssl模拟赛(2019.3.2 )

    前言: 某教练让初一蒟蒻(我)和初一巨佬(别人)做模拟赛 模拟赛题目: 题目 做法 CY跳荷叶 模拟 排排坐 DFS 分离与合体 石子合并 腾讯大战360 spfa(最短路) 比赛和想法: 这次比赛时 ...

  2. ssl模拟赛(2019.4.27)

    成绩 rank是有算其他大爷的 rank name score T1 T2 T3 T4 1 L Y F LYF LYF 320 100 100 100 20 2 H K Y HKY HKY 296 1 ...

  3. ssl提高组国庆模拟赛【2018.10.7】

    前言 出现了!毒瘤抠题人BPM. WHF大佬强势串场 成绩 RankRankRank PersonPersonPerson ScoreScoreScore AAA BBB CCC 111 2017my ...

  4. ssl提高组国庆模拟赛【2018.10.5】

    前言 竟然有半IOI赛制(雾) 成绩 RankRankRank PersonPersonPerson ScoreScoreScore AAA BBB CCC 111 2017myself2017mys ...

  5. 2017.10.25水题大作战题解

    rank: T1P1615 西游记公司 https://www.luogu.org/problemnew/show/P1615 scanf直接秒 1 #include<iostream> ...

  6. [大山中学模拟赛] 2016.9.10

    liao出了一场比赛 简直想吃狗屎 说好的noip难度?我操 因为有四道题 我简单的提一下就好了 [HNOI2007]梦幻岛宝珠 这一题liao也没说怎么想到这种dp的 吃屎吧 F[i][j]表示2^ ...

  7. 2017.10.25

    日期计算 时间限制:3000 ms  |  内存限制:65535 KB 难度:1 描述 如题,输入一个日期,格式如:2010 10 24 ,判断这一天是这一年中的第几天. 输入 第一行输入一个数N(0 ...

  8. 野鸡NOI.AC模拟赛【2019.10.26】

    前言 截止至2019.10.2614:222019.10.26\ \ \ \ 14:222019.10.26    14:22 成绩 正题 T1:NOI.AC−T1:NOI.AC-T1:NOI.AC− ...

  9. 2017.10.25笔记3

    1.语法   <form method="get|post" action="数据向哪提交的地址">    //表单内容   </form&g ...

  10. 2017.10.25 打鼹鼠 思考记录

    挺直白的dp 离散的是移动的过程,因为经过一番移动一定是为了出现在某个地点 所以直接m^2枚举,类似lis的转移即可 码: #include<iostream> #include<c ...

最新文章

  1. [hdu1828] Picture
  2. GDI 泄漏检测方法
  3. link 标签的 rel 属性
  4. 如何让用户在用webview访问网页时嵌入我们自己的内容
  5. 如何培养自己奇特的创意设计思维?
  6. 小米wifi每天晚上准时断网_小米路由器遭恶意抹黑 官方回应:抵制这种下三滥...
  7. 微信页面弹出窗口,底部不随窗口滑动而滚动
  8. python实现队列_Python学习教程:用队列实现栈
  9. 8.对Hello World程序的深入
  10. dj电商-需求分析-商品模块
  11. python Authentication plugin ‘caching_sha2_password‘ is not supp
  12. 第二章 Java多线程入门类和接口
  13. Objective-C 函数(方法)的定义和调用
  14. Unity世界坐标转换屏幕坐标(测试)
  15. 华硕主板装系统蓝屏_华硕台式电脑蓝屏怎么重装系统 华硕台式电脑蓝屏重装系统步骤...
  16. 如何压缩ppt大小的方法不减画质?
  17. 奇异值分解(SVD)(2)
  18. 钢铁侠或漫威中有哪些黑科技?
  19. L2到L4的泊车辅助系统---APA自动泊车、RPA远程遥控泊车、自学习泊车、AVP自动代客泊车
  20. c语言剧透,破镜重圆 ·《C语言修仙》by 十四洲

热门文章

  1. 关于搭建Hybrid App所需要的基础技术一文
  2. 鲍威尔法源程序码matlab,鲍威尔算法matlab程序.doc
  3. 前端html小技巧(css篇)—表单美化详解
  4. 最新emoji表情代码大全_2020最新版早上好问候图片大全 表情
  5. 干货 | Python之自动化报表
  6. Johnson 算法
  7. IMU噪声参数辨识-艾伦方差
  8. 老司机教你如何快速入门Linux | 小白必知
  9. ONVIF协议基础概念
  10. 进销存excel_还在用Excel处理进销存?推荐4个免费库存管理软件