Codeforces Round \ # 187 (Div. 2) 총결산
4573 단어 codeforces
A 문제: Sereja and Bottles
#include <stdio.h>
#include <string.h>
bool vis[111];
int a[111],b[111];
int main()
{
memset(vis,1,sizeof(vis));
int i,j,n;
scanf("%d", &n);
for(i = 0;i < n; i++)
scanf("%d%d", &a[i], &b[i]);
for(i = 0;i < n; i++)
for(j = 0;j < n ; j++)
if(i != j && b[i]==a[j])
vis[j] = 0;
int ans = 0;
for(i = 0;i < n; i++)
if(vis[i])
ans++;
printf("%d
", ans);
return 0;
}
B 문제: Sereja and Array
a [] 배열 이 a [x] 의 현재 값 을 유지 하 는 데 만 필요 합 니 다. sum 은 모든 요소 에 sum 을 추가 한 것 을 표시 합 니 다. 첫 번 째 작업 은 a [x] 를 y 로 바 꾸 려 면 a [x] = y - sum 만 있 으 면 됩 니 다.
C 문제: Sereja and Contest
a1, a2, a3, a4, a5
a3 의 d3 = a2 - 2 * 2 * a3
a4 의 d4 = a2 + 2 * a3 - 3 * 1a 4
a5 의 d5 = a2 + 2 * a3 + 3 * a4 - 0
이 법칙 을 찾 은 후에 한 번 매 거 하면 된다.
#include <stdio.h>
#define LL __int64
const int maxn = 100005 ;
LL a[maxn];
int main()
{
int n,m,i,x,y,z;
scanf("%d%d", &n ,&m);
for(i = 1;i <= n; i++)
scanf("%d", &a[i]);
LL sum = 0;
while(m--)
{
scanf("%d%d", &x, &y);
if(x == 1)
{
scanf("%d", &z);
a[y] = z-sum; // a[y] z
}
else if(x == 2)
sum += y;
else
printf("%I64d
", a[y] + sum);
}
return 0;
}
D 문제: Sereja and Periods
시합 후에 자신 이 생각해 낸 것 인 데, 이렇게 물 문 제 는 시합 에서 왜 감히 생각 하지 못 할 까? 다음 에는 결코 이런 상태 가 될 수 없다.
#include <stdio.h>
#include <string.h>
#include <algorithm>
#include <queue>
#include <vector>
#include <map>
#include <math.h>
using namespace std;
#define LL __int64
#define max(a,b) (a>b?a:b)
#define min(a,b) (a>b?b:a)
#define lowbit(x) ((x)&(-x))
#define lson rt<<1,l,mid
#define rson rt<<1|1,mid+1,r
LL a[200005];
int main()
{
int n,i;
LL k;
scanf("%d%I64d", &n, &k);
for(i = 1;i <= n; i++)
scanf("%I64d", &a[i]);
int pre = 1;
LL prex = 0;
LL sum = 1;
LL tot = n;
for(i = 2;i <= n; i++)
{
LL now;
if(sum != 1)
now = prex - sum*(tot-sum-1)*a[i];
else
now = - sum*(tot-sum-1)*a[i];
// printf("%d %I64d %I64d
", i,now,prex);
if(now < k)
printf("%d
", i),tot--;
else
{
sum++;
pre = i;
// printf("%I64d %I64d %d
", prex,a[i],sum);
prex = prex + (sum-1)*a[i];
// printf("%I64d %I64d %d
", prex,a[i],sum);
}
}
}
E 문제: Sereja and Subsequences
E 문제 도 원래 물 문 제 였 어 요. 경기 후에 시작 할 때 문제 의 뜻 이 틀 렸 어 요. 잘못된 생각 을 오래 했 어 요. 진정한 경기 때 와 경기 후에 문 제 를 푸 는 느낌 이 전혀 달라 요. 언제 경 기 를 진정 으로 통제 할 수 있 는 느낌 이 들 었 으 면 좋 겠 어 요!
트 리 배열 or 선분 트 리
#include <stdio.h>
#include <string.h>
#define LL __int64
char a[111], c[111] ;
int cnt[111], next[111];
int main()
{
int b,d,i,j;
scanf("%d%d%s%s", &b, &d, a, c) ;
int len1 = strlen(a);
int len2 = strlen(c);
for(i = 0;i < len2; i++)
{
int cur = i;
cnt[i] = 0;
for(j = 0;j < len1; j++)
if(c[cur] == a[j])
{
cur++;
if(cur == len2)
cnt[i] ++ , cur = 0;
}
next[i] = cur;
}
int cur = 0;
LL ans = 0;
for(i = 0;i < b; i++)
{
ans += cnt[cur];
cur = next[cur];
}
printf("%I64d
", ans/d);
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Codeforces Round #715 Div. 2C The Sports Festival: 구간 DP전형구간 DP의 초전형. 이하, 0-indexed. 입력을 정렬하여 어디서나 시작하고 최적으로 좌우로 계속 유지하면 좋다는 것을 알 수 있습니다. {2000})$의 주문이 된다. 우선, 입력을 소트하여 n개의 요소를 $...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.