9.21 Codeforces 라운드 # 582 (사업부. 3)

면책 조항 :이 문서는 블로거 원본입니다, 추적 에 의해-SA의 CC 4.0 저작권 계약, 복제, 원본 소스 링크이 문을 첨부 해주세요.
이 링크 : https://blog.csdn.net/JiangHxin/article/details/101158847

# 582 (사업부 3 라운드 Codeforces ) : 새로운 세계를 입력하려면 클릭

A. 칩 이동 (생각)

원래의 질문에 링크 : 포털

아이디어 :

  1. N은 같은 좌표의 모든 칩 경화의 소비를 최소화하고자, 경화, 이동 프레임 (1)의 경화 소비를 소비하지 않는 계통 2 이동 좌표에 표기 칩을 제공해야.
  2. 이동국은 1-3 / 2-4 / 1-5 / 2-6로 코인 셀 (2), 출력하므로 단지 작은 값이 계산 될 수 짝수 및 홀수의 양을 소비하지 않기 때문에.

    다음과 같이 코드입니다 :
#include<bits/stdc++.h>
#define pi 3.1415926535898
using namespace std;
int main()
{
    int n,x,ans1=0,ans2=0;
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        scanf("%d",&x);
        if(x%2) ans1++;
        else ans2++;
    }
    cout<<min(ans1,ans2);
    return 0;
}


B. 나쁜 가격 (사고)

원래의 질문에 링크 : 포털

아이디어 :

  1. 일 오른쪽 일보다 낮은 값, 그것은 n은 일하고자하는, 나쁜 일 몇 일에 대한 나쁜 날 경우 n 개의 무게를 일 수를 감안할 경우가있을 것입니다.
  2. 왕 Qianmian 뒤에서 밀어, 일 가중치의 특정 수보다 큰 입술 입술 <A [i]를, 최악 일 ANS ++, 그렇지 않으면, 업데이트 입술 = A [I].

다음과 같이 AC 코드는 다음과 같습니다

#include<bits/stdc++.h>
#define pi 3.1415926535898
using namespace std;
const int manx=150005;
int a[manx];
int main()
{
    int t;
    cin>>t;
    while(t--)
    {
        int n,ans=0,res=1000005;
        scanf("%d",&n);
        for(int i=1;i<=n;i++)
            scanf("%d",&a[i]);
        for(int i=n;i>=1;i--){
            if(a[i]>res) ans++;
            res=min(res,a[i]);
        }
        printf("%d\n",ans);
    }
    return 0;
}


C. 화이트 시트 (수학)

원래의 질문에 링크 : 포털

아이디어 :

  1. 번호 (10) 및 몰드로 나누어 1 ~ n 개의 m 추구에서, n 및 m이 주어.
  2. 이 문제의 경우, 직접 시뮬레이션 내가 아는 이유를 묻지 않는, 초과 근무 확실히?
  3. 일반적으로이 법 또는 재발을 찾는 것입니다. 이 문제는 각 나누어 10 모듈로해야 들어 재귀 할 표기 그것이 D로 1~9 시간 응답의 기여도를 곱하여 제 계산에 의해 회수에서 시작하는 것이 가능하다 [I] 기록 m * I의 대답에 기여 1m의 *.
    (여기서 답변 0부터 9까지의 각 숫자의 본래 기여하지만 응답 : 0 ~ 0 10쌍 기부이므로 쓰지 않는다).
  4. M은 N / m / 완료 작업의 수는 10 m 1 내지 10, 나머지 N / m, 10 % N 존재를 수가 N / m 인 N / m를 가질 수가 나눌 N 개 / m의 10 %의 1 내지 m에 의해 행해진 연산의 수.
  5. 에 대한 답변을 얻을 수있다 (N / m / 10) * D [9] + D [N / m의 10 %].

다음과 같이 AC 코드는 다음과 같습니다

#include<bits/stdc++.h>
#define pi 3.1415926535898
using namespace std;
typedef long long ll;
ll d[10];
int main()
{
    ll n,m;
    int t;
    cin>>t;
    while(t--)
    {
        cin>>n>>m;
        for(int i=1;i<=9;i++) d[i]=(m*i)%10,d[i]+=d[i-1];
        cout<<(n/m/10)*d[9]+d[n/m%10]<<endl;
    }
    return 0;
}


가상 참가한다.

추천

출처blog.csdn.net/JiangHxin/article/details/101158847