zoukankan      html  css  js  c++  java
  • upc组队赛16 Melody【签到水】

    Melody

    题目描述

    YellowStar is versatile. One day he writes a melody A = [A1, ..., AN ], and he has a standard melody B = [B1, ..., BN ]. YellowStar can split melody into several parts, it can be expressed as: K split position S = [S1, ..., SK], satisfy 1 ≤ S1 < S2 < · · · < SK = N. Melody A and B will be split into K parts:

    Two parts of melody are equal while the change of tone is consistent. It can be expressed as:
    A = [A1, ..., AM ] equal to B = [B1, ..., BM ] need to satisfy:

    Now YellowStar wants each part of his melody A equals to each part of standard melody B. In other words, the following conditions need to be met:

    YellowStar also wants the number K of split parts as minimum as possible.

    输入

    Input is given from Standard Input in the following format:
    N
    A1 A2 . . . AN
    B1 B2 . . . BN
    Constraints
    1 ≤ N ≤ 105
    1 ≤ Ai, Bi ≤ 109
    All Ai are distinct and all Bi are distinct.
    All inputs are integers.

    输出

    Print one line denotes the minimal integer K .

    样例输入

    5
    1 3 2 4 5
    4 9 10 11 8
    

    样例输出

    3

    题解

     枚举找单调性不同的位置个数

    代码

    #include<bits/stdc++.h>
    using namespace std;
    #define rep(i,a,n) for(int i=a;i<n;i++)
    #define scac(x) scanf("%c",&x)
    #define sca(x) scanf("%d",&x)
    #define sca2(x,y) scanf("%d%d",&x,&y)
    #define sca3(x,y,z) scanf("%d%d%d",&x,&y,&z)
    #define scl(x) scanf("%lld",&x)
    #define scl2(x,y) scanf("%lld%lld",&x,&y)
    #define scl3(x,y,z) scanf("%lld%lld%lld",&x,&y,&z)
    #define pri(x) printf("%d
    ",x)
    #define pri2(x,y) printf("%d %d
    ",x,y)
    #define pri3(x,y,z) printf("%d %d %d
    ",x,y,z)
    #define prl(x) printf("%lld
    ",x)
    #define prl2(x,y) printf("%lld %lld
    ",x,y)
    #define prl3(x,y,z) printf("%lld %lld %lld
    ",x,y,z)
    #define ll long long
    #define LL long long
    inline ll read(){ll x=0,f=1;char ch=getchar();
    while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}
    while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}
    return x*f;}
    #define read read()
    #define pb push_back
    #define mp make_pair
    #define P pair<int,int>
    #define PLL pair<ll,ll>
    #define PI acos(1.0)
    #define eps 1e-6
    #define inf 1e17
    #define INF 0x3f3f3f3f
    #define MOD 998244353
    #define mod 1e9+7
    #define N 1000005
    const int maxn=2000005;
    ll a[maxn];
    ll b[maxn];
    int main()
    {
      int n;
      sca(n);
      rep(i,0,n)
        scl(a[i]);
      rep(i,0,n)
        scl(b[i]);
      ll k = 0;
      rep(i,1,n)
      {
        if((LL)(a[i]-a[i-1])*(LL)(b[i]-b[i-1]) > 0)
          continue;
        else
          k++;
      }
      prl(k+1);
    }
     
  • 相关阅读:
    ubuntu实时显示网速cpu占用和内存占用率
    删除以....开头的所有文件
    0.0.....1 至 0.99.......9 之间正则
    引入腾讯视频播放,可控制是否暂停播放
    解决微信小程序textarea层级太高遮挡其他组件的问题
    查看某分支推送记录
    小程序下载canvas生成图片
    微信小程序企业付款到个人
    秒 转化为 时:分:秒 ------- 类似倒计时
    iOS--崩溃日志的格式化分析---格式化crash日志
  • 原文地址:https://www.cnblogs.com/llke/p/10809727.html
Copyright © 2011-2022 走看看