Codeforces Round #634 (Div.3)
37762 단어 codeforces
A
제목: 두 자매에게 설탕을 나누어 주는데 베티보다 앨리스의 설탕이 더 필요해요. 몇 가지 분법이 있냐고 물어봐요.
문제기: 두 가지 경우 설탕의 수량이 3보다 적을 때 조건에 부합되는 분법이 없고 설탕이 3보다 큰 경우 (n-1)/2를 직접 출력하면 된다.
#include
using namespace std;
int main(){
int t;
cin>>t;
while(t--){
int x;
cin>>x;
if(x<3)cout<<0<<endl;
else cout<<(x-1)/2<<endl;
}
return 0;
}
B
제목: 길이가 n인 문자열을 구성하고 길이가 a인 문자열마다 b개의 다른 자모가 있습니다.
제목: b개의 다른 알파벳을 순환 출력하면 됩니다
예: abcabcabc
#include
using namespace std;
char str[]={
"abcdefghijklnmopqrstuvwxyz"};
int main(){
int t;
cin>>t;
while(t--){
int n,a,b;
cin>>n>>a>>b;
int sum=0;
for(int i=0;i<n;i++){
cout<<str[i%b];
}
cout<<endl;
}
return 0;
}
C
제목: 학생을 두 조로 나누면 첫 번째 조의 모든 학생의 수치가 다르고 두 번째 조의 모든 학생의 수치가 같아야 한다.두 조의 학생 수가 같으니 조의 중학생 수의 최대치를 구해라.
문제: 같은 수치의 학생의 최대 수량(sum2)과 다른 학생의 최대 수량(sum1)을 기록한 후 상황을 나누어 토론한다.
1. 만약sum1=sum2라면sum1에sum2가 포함되어 있기 때문에 답은sum1-1을 취해야 한다.
2. 만약sum1>sum2라면sum2를 답안으로 한다.
3、sum2>sum1이면sum1을 답안으로 합니다.
4.sum2가 0이면sum1이 1보다 크지 않으면 답은 1을 취하고 그렇지 않으면 0을 취한다.
#include
#include
#include
using namespace std;
const int N=2e5+10;
int a[N];
int main(){
int t;
cin>>t;
while(t--){
int n;
cin>>n;
int sum1=0,sum2=0,x;
memset(a,0,sizeof(a));
for(int i=0;i<n;i++){
cin>>x;
a[x]++;
if(a[x]==1) sum1++;
else if(a[x]>1) sum2=max(sum2,a[x]);
}
int ans=0;
if(n==1) ans=0;
else if(sum1>1&&sum2==0) ans=1;
else if(sum1>sum2) ans=sum2;
else if(sum1==sum2) ans=sum1-1;
else if(sum1<sum2) ans=sum1;
cout<<ans<<endl;
}
return 0;
}
D
제목: 9x9의 수독방진을 제시하려면 반수독을 출력해야 한다. 즉, 줄마다 3x3방격(제목은 그려져 있다)이 같은 숫자가 있어야 한다.
문제: 동업자가 아닌 9개의 서로 다른 열의 3x3 칸의 수를 찾아서 그들의 수치를 바꾸면 된다.예를 들어 첫 번째 코드 (처음에 쓴...) 는 사실 독에서 하나의 수를 선택하고 그 값을 바꾸면 된다.예를 들어 모든 1을 2 (두 번째 코드) 로 바꾸다.수독의 방진에서 같은 수는 동업자가 아닌 다른 열의 다른 3x3 방진에 있기 때문이다.
#include
#include
#include
using namespace std;
const int N=2e5+10;
char a[11][11];
int main(){
int t;
cin>>t;
while(t--){
for(int i=1;i<=9;i++)
for(int j=1;j<=9;j++)
cin>>a[i][j];
for(int i=1,j=1;i<=9;i+=3,j++){
//cout<
if(a[i][j]!='1')a[i][j]='1';
else a[i][j]='2';
if(a[i+1][j+3]!='1')a[i+1][j+3]='1';
else a[i+1][j+3]='2';
if(a[i+2][j+6]!='1')a[i+2][j+6]='1';
else a[i+2][j+6]='2';
//out<}
for(int i=1;i<=9;i++){
for(int j=1;j<=9;j++){
cout<<a[i][j];
}
cout<<endl;
}
}
return 0;
}
#include
#include
#include
using namespace std;
const int N=2e5+10;
char a[11][11];
int main(){
int t;
cin>>t;
while(t--){
for(int i=1;i<=9;i++)
for(int j=1;j<=9;j++)
cin>>a[i][j];
for(int i=1;i<=9;i++){
for(int j=1;j<=9;j++){
if(a[i][j]=='1') cout<<'2';
else cout<<a[i][j];
}
cout<<endl;
}
}
return 0;
}
E
큰 놈의 코드를 참고했다.https://www.cnblogs.com/heyuhhh/p/12699998.html제목: 제목에 맞는 최장자 서열을 찾아 출력의 최장 길이를 찾습니다.
#include
#include
using namespace std;
const int N=2e5+10,M=205;
int a[N],f[N][M];
int main(){
ios::sync_with_stdio(false);
cin.tie(0);cout.tie(0);
int t; cin>>t;
while(t--){
int n;
cin>>n;
for(int i=1;i<=n;i++) cin>>a[i];
vector<vector<int>> at(M);
// vector, 205
for(int j=1;j<=200;j++){
for(int i=1;i<=n;i++){
f[i][j]=f[i-1][j]+(a[i]==j);
//cout<
// i j
if(a[i]==j){
//cout<
at[j].push_back(i);
// 1 200
}
}
}
int ans=0;
for(int i=1;i<=200;i++){
// 1
for(int l=0;l<at[i].size();l++){
int r=(int)at[i].size()-1-l;//
if(l>r)break;// l>r
if(l==r) ans=max(ans,(int)at[i].size());
//
else{
int mmax=0;
for(int j=1;j<=200;j++){
mmax = max(mmax, f[at[i][r] - 1][j] - f[at[i][l]][j]);
}
ans=max(ans,2*(l+1)+mmax);
}
}
}
cout<<ans<<'
';
}
return 0;
}
F
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 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에 따라 라이센스가 부여됩니다.