D. Wildest Dreams

这道题的意思是Ayna和Arup两人会同时在车上一段时间,在Ayna在的时候,必须单曲循环Ayna喜欢的歌,偶数段Ayna下车,若此时已经放了她喜欢的那首歌,就要将它放完,然后按照顺序播放其他的歌,输出一共播放了Ayna喜欢的歌多少分钟。

分情况考虑,加起来总和就是一共播放的时间。

做题思路:

:奇数段的时间总和;

:判断奇数段的时间Ayna喜欢的歌是否恰好播放完:

(1)若恰好播放完,对其后的偶数段不做处理

(2)若否,判断偶数段时间是否大于此歌未播放部分的时间:

    a.若小于等于,直接加上偶数时间段,并将该偶数段归零

    b.若大于,将偶数时间段减去此歌未播放部分的时间

:将处理过的偶数段的时间进行计算,一共循环列表几次,判断是否恰好循环整列表

(1)是,总和只加上循环次数乘以这首歌单曲播放完毕的时间

(2)否,判断剩余时间长度是否包含Ayna喜欢的歌,若包含,总和加上循环次数乘以这首歌单曲播放完毕的时间+播放这首歌的时间

AC代码:

#include<cmath>
#include<cstdio>
#include<algorithm>
#include<iostream>
#include <cstring>
using namespace std;
int main()
{
    int cd,i;
    cin>>cd;
    for(int k=1;k<=cd;k++)
    {   int sum2=0;
        cout<<"CD #"<<k<<":"<<endl;
        int cds,f;
        int a[25];
        cin>>cds>>f;
        for(i=0;i<cds;i++){
            cin>>a[i];
            sum2+=a[i];
        }
        int n;
        cin>>n;
        while(n--){
            int m;
            int sum=0;
            cin>>m;
            int b[25];
            for(i=0;i<m;i++){
                cin>>b[i];
            }
            for(i=0;i<m;i++){
                if(i%2==0){
                    sum+=b[i];
                }
                if(i%2==1){
                    int sheng=b[i-1]%a[f-1];
                    if(sheng!=0){
                        b[i]-=a[f-1]-sheng;
                        if(b[i]>0){
                             sum+=a[f-1]-sheng;
                        }else{
                             sum+=b[i]+a[f-1]-sheng;
                             b[i]=0;
                        }
                    }
                    sheng=b[i]/sum2;
                    sum+=sheng*a[f-1];
                    sheng=b[i]%sum2;
                    if(sheng-sum2+a[f-1]>0){
                        sum+=sheng-sum2+a[f-1];
                    }
                }
            }
            cout<<sum<<endl;
        }
        cout<<endl;
    }
    return 0;
}

B. Phoneme Palindromes

这道题的意思是根据输入的p对认为相等的字母,判断输入的字符串是否为回文。

做题思路:

利用<map>建立两个字母的对应,这样就将所有可以相互替换的字母都统一替换成相同字母,然后判断是否回文即可。

AC代码:

#include<iostream>
#include<cstring>
#include<map>
using namespace std;
int main(){
  int n,p,q,i,j,m,x,y;
  char a,b,s[100];
  cin>>n;
  for(i=1;i<=n;i++){
    cout<<"Test case #"<<i<<":" <<endl;
    cin>>p;
    map<char,char>mp;
    for(j=0;j<26;j++)
    {
      char c='a'+j;
      mp[c]=c;
    }
    for(j=0;j<p;j++){
      cin>>a>>b;
      mp[a]=mp[b]=a;
    }
    cin>>q;
    for(j=0;j<q;j++){
      cin>>s;
      cout<<s<<" ";
      m=strlen(s);
      int p=0;
      for(x=0;x<m;x++){
        s[x]=mp[s[x]];
      }
      for(x=0;x<=m/2;x++){
        if(s[x]!=s[m-x-1]){
          p=1;
          break;
        }
      }
      if(p==0){
        cout<<"YES"<<endl;
      }
      else{
        cout<<"NO"<<endl;
      }
    }
  cout<<endl;
  }
  return 0;
}

ICPC训练周赛 Benelux Algorithm Programming Contest 2019的更多相关文章

  1. 2020.3.21--ICPC训练联盟周赛Benelux Algorithm Programming Contest 2019

    A Appeal to the Audience 要想使得总和最大,就要使最大值被计算的次数最多.要想某个数被计算的多,就要使得它经过尽量多的节点.于是我们的目标就是找到 k 条从长到短的链,这些链互 ...

  2. ICPC训练联盟周赛Preliminaries for Benelux Algorithm Programming Contest 2019

    I题 求 a 数组平方的前缀和和求 a 数组后缀和,遍历一遍即可 AC代码 #include<iostream>#include<cmath>using namespace s ...

  3. 03.14 ICPC训练联盟周赛,Preliminaries for Benelux Algorithm Programming Contest 2019

    A .Architecture 题意:其实就是想让你找到两行数的最大值,然后比较是否相同,如果相同输出'possible',不同则输出'impossible' 思路:直接遍历寻找最大值,然后比较即可 ...

  4. 2020.3.14--训练联盟周赛 Preliminaries for Benelux Algorithm Programming Contest 2019

    1.A题 题意:给定第一行的值表示m列的最大值,第m行的值表示n行的最大值,问是否会行列冲突 思路:挺简单的,不过我在一开始理解题意上用了些时间,按我的理解是输入两组数组,找出每组最大数,若相等则输出 ...

  5. Benelux Algorithm Programming Contest 2019

    J. Jazz it Up!题目要求,n*m的因子中不能含有平方形式,且题目中已经说明n是一个无平方因子的数, 那么只要m是无平方因子的数,并且n和m没有共同的因子即可.要注意时间复杂度!代码:#in ...

  6. Preliminaries for Benelux Algorithm Programming Contest 2019

    A. Architecture 如果行最大值中的最大值和列最大值中的最大值不同的话,那么一定会产生矛盾,可以手模一个样例看看. 当满足行列最大值相同条件的时候,就可以判定了. 因为其余的地方一定可以构 ...

  7. Benelux Algorithm Programming Contest 2014 Final(第二场)

    B:Button Bashing You recently acquired a new microwave, and noticed that it provides a large number ...

  8. 2014 Benelux Algorithm Programming Contest (BAPC 14)E

    题目链接:https://vjudge.net/contest/187496#problem/E E Excellent Engineers You are working for an agency ...

  9. 计蒜客 28319.Interesting Integers-类似斐波那契数列-递推思维题 (Benelux Algorithm Programming Contest 2014 Final ACM-ICPC Asia Training League 暑假第一阶段第二场 I)

    I. Interesting Integers 传送门 应该是叫思维题吧,反正敲一下脑壳才知道自己哪里写错了.要敢于暴力. 这个题的题意就是给你一个数,让你逆推出递推的最开始的两个数(假设一开始的两个 ...

随机推荐

  1. ASP.NET CORE 管道模型及中间件使用解读

    说到ASP.NET CORE 管道模型不得不先来看看之前的ASP.NET 的管道模型,两者差异很大,.NET CORE 3.1 后完全重新设计了框架的底层,.net core 3.1 的管道模型更加灵 ...

  2. Vue2.0组件的继承与扩展

    如果有需要源代码,请猛戳源代码 希望文章给大家些许帮助和启发,麻烦大家在GitHub上面点个赞!!!十分感谢 前言 本文将介绍vue2.0中的组件的继承与扩展,主要分享slot.mixins/exte ...

  3. 谈谈集合.Queue

    之前说到,Java中集合的主要作用就是装盛其他数据和实现常见的数据结构.所以当我们要用到"栈"."队列"."链表"和"数组&quo ...

  4. vue-element-admin 模板 登录页面 post请求通过django的csrf认证,处理304错误

    经过一天的研究,终于把 vue-admin-template 模板的 post 请求 和django的api 弄通了 没有了那该死的304报错了 直接贴代码: 在main.js中 我直接给设置了一个 ...

  5. JetBrains 第二轮:再为免费全家桶续命三个月

    昨天分享了如何通过参与JetBrains的解密任务来获取正版全家桶的兑换码.今天 JetBrains 一早继续在Twitter推出第二波任务: 下面,我们就继续来一起参与一下,为我们的正版JetBra ...

  6. JVM05——JVM类加载机制知多少

    我们已经讲过 JVM 相关的很多常见知识点,感兴趣的朋友可以在我的往期文章中查看.接下来将继续为各位带来 JVM 类加载机制.关注我的公众号「Java面典」了解更多 Java 相关知识点. 类生命周期 ...

  7. git常规使用命令笔记

    使用git也有不短的时间,这篇文章主要默写自己在提交代码经常使用的一些密令,仅供参考并不是教程. git log 查看日志 git branch 查看分值 git branch Name 新建一个Na ...

  8. centeos安装Anconda3

    步骤: #获取安装包 wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-5.2.0-Linux-x86_64.s ...

  9. 记Android R(SDK=30)系统执行UiAutomator1.0异常

    最近Android发布了AndroidStudio 3.6稳定版,升级后明显能体验到好多细节的提升,最大的提升莫过于可以创建Android R预览版的模拟器了,并且模拟器可以设置多个尺寸的屏幕.And ...

  10. Qt5小Demo之猜数字游戏

    玩法:设定时间进行猜数字,所猜数字为一个四位数,输入自己的数字,系统会提示是大了还是小了,依据条件逐步逼近正确结果.在规定时间里猜对即获胜,否则即失败. 平台支持:Win10下测试正常. 源码地址: ...