2021年度训练联盟热身训练赛第二场补题

A.Binarize lt
题意:水题

B.g2g c u l8r
题意:就是一个利用map进行查找替换的题目(队友做出来的)
wa掉的点:当时差点wa掉的点就是混合这些字符串还有数字读入的时候就不要用那一行代码(ios::sync_with_stdio(false);)来进行加速,不然容易吃掉什么,导致读入出现问题,这也是导致我们为什么儿这个水题做了一个多小时

C.Tip to be Palindrome
题意:吃饭花费n元,需要给小费n*0.2,小费和吃饭所花的钱总数应该是整数,并且是回文数字,当然可以增加小费来满足上述条件
思路:直接水,用一个函数来判断会问数字

D.Soccer Standings
题意:比赛,然后根据特定的顺序进行排序
思路:结构体排序

E.NIH Budget
题意:特定钱数下救更多的人
思路:dp,队友最出来的,自己又改了以下01背包的代码,就是多加了一层for循环,毕竟每一行只能选择一个
代码:

```#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
#include<cmath>
using namespace std;
const int maxx=1e5+10;
int main(){
    int t;
    int tt=1;
    scanf("%d",&t);
    while(t--){
        int n,d,m;
        scanf("%d %d",&n,&m);
        int w[20][20],v[20][20];
        long long int f[maxx]={0};
       // pair<int,int> s;
        for(int i=0;i<n;i++){
            for(int j=0;j<4;j++){
                scanf("%d %d",&w[i][j],&v[i][j]);
            }
        }
        for(int i=0;i<n;i++){//for(int i=0;i<4*n;i++){
            for(int c=m;c>0;c--){//for(int c=m;c>=0;c--){//倒序模拟
                for(int k=0;k<4;k++){
                    if(c>=w[i][k])
                        f[c]=max(f[c],f[c-w[i][k]]+v[i][k]);
                }
            }
        }
        long long int sum=0;
        for(int i=0;i<=m;i++){
            sum=max(sum,f[i]);
        }
        printf("Budget #%d: Maximum of %lld lives saved.\n",tt,sum);
        tt++;
        if(t>0){
            printf("\n");
        }
//Budget #2: Maximum of 500 lives saved.

//Budget #3: Maximum of 0 lives saved.%lld\n",f[m]);
    }
}
 

G.Plant Spinning

题目:其实就是比较2.5*n与p的大小(当时以为是很难得题,看着题目这么长就没有仔细看,其实这个题还是挺水的,真的是在看题之前一定不能带有个人的提前意识,不然你会得题或者是很水的题你也不会做出来)
代码:

1#include<iostream>
2 #include<algorithm>
3 #include<cstdio>
4 #include<cmath>
5 #include<cstring>
6 using namespace std;
7 int main(){
8 int t;
9 scanf("%d ",&t);
10 int s=1;
11 while(t--){
12 int n,p;
13 scanf("%d %d",&n,&p);/*Circus Act 1:
14 Chester can do it!
15
16 Circus Act 2:
17 Chester will fail!
18
19 Circus Act 3:
20 Chester can do it!*/
21 if(n==1){
22 printf("Circus Act %d:\n",s);
23 printf("Chester can do it!\n");
24 }else{
25 double sum=0;
26 sum=2.5*(n);
27 if(sum>p){
28 printf("Circus Act %d:\n",s);
29 printf("Chester will fail!\n");
30 }else{
31 printf("Circus Act %d:\n",s);
32 printf("Chester can do it!\n");
33 }
34 }
35 printf("\n");
36 s++;
37 }
38 }

I Pegasus Circle Shortcut
题目:就是给定圆和圆上的两个点,再给定园中的点,问圆上的两个点,是通过弧走近还是跟着圆内的折线走近

思路:直接模拟,折线直接通过两点间的距离求出来,弧的话通过r*acos(向量积/(r^2))求得,再直接进行比较

感想:一开始的时候听说不是很难,所以前面的题目做的也非常快,但是到了后面,题目也长,又觉得都到了后面了题目肯定很难了,导致很多自己本来可以没有压力做出来的题目都不写,再加上当时一边做牛客一边跟着赛氪的oj做计算机算法大赛,更是一头雾水,题还是要经常补的,算法题还有模板还是要经常积累的,从上次到这次觉得其实成长也不小

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值