Educational Codeforces Round 93 (Rated for Div. 2) (ABCD)
35464 단어 dpcf채계의 실연(시련)
A. Bad Triangle
제목:
승차순 하나 드릴게요.물음: 삼각형이 될 수 없는 트리플 (삼원조) 이 존재하는지 여부입니다.
아이디어:
가장 작은 두 변과 가장 큰 변을 취하다.a【1】+a【2】<=a【n】시 조건을 만족시킨다.
AC #include
using namespace std;
const int maxn=5e4+10;
int a[maxn];
int main()
{
ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
int t;cin>>t;
while(t--){
int ans=-1;
int n;cin>>n;
for(int i=1; i<=n; i++)cin>>a[i];
if(a[1]+a[2]<=a[n])ans=1;
if(ans==1)cout<<1<<' '<<2<<' '<<n<<endl;
else cout<<ans<<endl;
}
return 0;
}
B. Substring Removal Game
제목:
01열에는 다음과 같은 작업이 있습니다.
승차순 하나 드릴게요.물음: 삼각형이 될 수 없는 트리플 (삼원조) 이 존재하는지 여부입니다.
아이디어:
가장 작은 두 변과 가장 큰 변을 취하다.a【1】+a【2】<=a【n】시 조건을 만족시킨다.
AC #include
using namespace std;
const int maxn=5e4+10;
int a[maxn];
int main()
{
ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
int t;cin>>t;
while(t--){
int ans=-1;
int n;cin>>n;
for(int i=1; i<=n; i++)cin>>a[i];
if(a[1]+a[2]<=a[n])ans=1;
if(ans==1)cout<<1<<' '<<2<<' '<<n<<endl;
else cout<<ans<<endl;
}
return 0;
}
B. Substring Removal Game
제목:
01열에는 다음과 같은 작업이 있습니다.
#include
using namespace std;
const int maxn=5e4+10;
int a[maxn];
int main()
{
ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
int t;cin>>t;
while(t--){
int ans=-1;
int n;cin>>n;
for(int i=1; i<=n; i++)cin>>a[i];
if(a[1]+a[2]<=a[n])ans=1;
if(ans==1)cout<<1<<' '<<2<<' '<<n<<endl;
else cout<<ans<<endl;
}
return 0;
}
B. Substring Removal Game
제목:
01열에는 다음과 같은 작업이 있습니다.
01열에는 다음과 같은 작업이 있습니다.
한 사람당 한 번씩 조작하고 번갈아 오다.(최종 점수는 1을 뺀 개수).
질문:앨리스의 점수를 구하다
아이디어:
0
1이 이렇게 된다면 틀림없이 가지 않을 것이다0
. 왜냐하면 갔기 때문이다0
. 그러면 상대는 11
가 없어질 수 있기 때문이다.)AC #include
#include
#include
#include
using namespace std;
char s[200];
int main()
{
ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
int t;cin>>t;
while(t--){
vector<int>v;
cin>>(s+1);
int len=strlen(s+1);
int cnt=0,flag=0;
for(int i=1; i<=len; i++){
if(s[i]=='1')cnt++,flag=1;
else {
if(cnt)v.push_back(cnt);
cnt=flag=0;
}
}
if(cnt)v.push_back(cnt);
sort(v.begin(),v.end());
int ed=v.size()-1;
int ans=0;
for(int i=ed; i>=0; i-=2)ans+=v[i];
cout<<ans<<endl;
}
return 0;
}
C. Good Subarrays
제목:
good subarray 。
구:good subarray가 몇 개 있어요?
아이디어:
#include
#include
#include
#include
using namespace std;
char s[200];
int main()
{
ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
int t;cin>>t;
while(t--){
vector<int>v;
cin>>(s+1);
int len=strlen(s+1);
int cnt=0,flag=0;
for(int i=1; i<=len; i++){
if(s[i]=='1')cnt++,flag=1;
else {
if(cnt)v.push_back(cnt);
cnt=flag=0;
}
}
if(cnt)v.push_back(cnt);
sort(v.begin(),v.end());
int ed=v.size()-1;
int ans=0;
for(int i=ed; i>=0; i-=2)ans+=v[i];
cout<<ans<<endl;
}
return 0;
}
제목:
good subarray 。
구:good subarray가 몇 개 있어요?
아이디어:
。
(이 조건은 간소화할 수 있고 구간 안의 모든 수는 1을 줄일 수 있다. 만약에 조건이 충족된다면 이 구간의 합은 0이어야 한다)는 것을 간소화할 수 있다.ii i를 종점으로 하는 하위 서열에는 몇 개의 good subarray가 있다.eg1 :11111 pre[1]=0, pre[2]=0, pre[3]=0, pre[4]=0, pre[5]=0 ans=1(i=1)+2(i=2)+3(i=3)+4(i=4)+5(i=5).
eg2: 110202 pre[1]=0, pre[2]=0, pre[3]=-1, pre[4]=0, pre[5]=-1, pre[2]=0, ans= 1+2+0+3+1+4
AC #include
#include
#include
#include
using namespace std;
typedef long long ll;
const int maxn=9e5+10;
ll pre[maxn];//,sum[maxn];
char s[maxn];
map<int,int>ma;
int main()
{
ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
int t;cin>>t;
while(t--){
int n;cin>>n;
cin>>(s+1);
ma.clear();
pre[0]=0;//sum[0]=0;
for(int i=1; i<=n; i++)pre[i]=pre[i-1]+s[i]-'0'-1;
ll ans=0;
ma[0]=1;
for(int i=1; i<=n; i++)ans+=ma[pre[i]]++;
cout<<ans<<endl;
}
return 0;
}
D. Colored Rectangles
제목:
r변, g변, b변이 있습니다.두 개의 조합 직사각형.구: a n s = ∑p a r e a ans=\sumparea ans=∑parea.
아이디어:
단순 상태
#include
#include
#include
#include
using namespace std;
typedef long long ll;
const int maxn=9e5+10;
ll pre[maxn];//,sum[maxn];
char s[maxn];
map<int,int>ma;
int main()
{
ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
int t;cin>>t;
while(t--){
int n;cin>>n;
cin>>(s+1);
ma.clear();
pre[0]=0;//sum[0]=0;
for(int i=1; i<=n; i++)pre[i]=pre[i-1]+s[i]-'0'-1;
ll ans=0;
ma[0]=1;
for(int i=1; i<=n; i++)ans+=ma[pre[i]]++;
cout<<ans<<endl;
}
return 0;
}
제목:
r변, g변, b변이 있습니다.두 개의 조합 직사각형.구: a n s = ∑p a r e a ans=\sumparea ans=∑parea.
아이디어:
단순 상태
단순 상태
AC #include
#include
#include
using namespace std;
typedef long long ll;
ll a[4][300];
ll dp[300][300][300];
int main()
{
ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
ll col[4];
cin>>col[1]>>col[2]>>col[3];
for(int i=1; i<=3; i++){
for(int j=1; j<=col[i]; j++)cin>>a[i][j];
}
ll ans=0;
for(int i=1; i<=3; i++)sort(a[i]+1,a[i]+1+col[i]);
for(int i=col[1]; ~i; i--){
for(int j=col[2]; ~j; j--){
for(int k=col[3]; ~k; k--){
dp[i][j][k]=max(dp[i][j][k],dp[i+1][j+1][k]+(ll)a[1][i+1]*a[2][j+1]);//1,2
dp[i][j][k]=max(dp[i][j][k],dp[i+1][j][k+1]+(ll)a[1][i+1]*a[3][k+1]);//1,3
dp[i][j][k]=max(dp[i][j][k],dp[i][j+1][k+1]+(ll)a[3][k+1]*a[2][j+1]);//2,3
}
}
}
for(int i=col[1]; ~i; i--){
for(int j=col[2]; ~j; j--){
for(int k=col[3]; ~k; k--){
ans=max(dp[i][j][k],ans);
}
}
}
cout<<ans<<endl;
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
【경쟁 프로 전형적인 90문】008의 해설(python)
의 해설 기사입니다.
해설의 이미지를 봐도 모르는 (이해력이 부족한) 것이 많이 있었으므로, 나중에 다시 풀었을 때에 확인할 수 있도록 정리했습니다.
※순차적으로, 모든 문제의 해설 기사를 들어갈 예정입니다.
문자열...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.
#include
#include
#include
using namespace std;
typedef long long ll;
ll a[4][300];
ll dp[300][300][300];
int main()
{
ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
ll col[4];
cin>>col[1]>>col[2]>>col[3];
for(int i=1; i<=3; i++){
for(int j=1; j<=col[i]; j++)cin>>a[i][j];
}
ll ans=0;
for(int i=1; i<=3; i++)sort(a[i]+1,a[i]+1+col[i]);
for(int i=col[1]; ~i; i--){
for(int j=col[2]; ~j; j--){
for(int k=col[3]; ~k; k--){
dp[i][j][k]=max(dp[i][j][k],dp[i+1][j+1][k]+(ll)a[1][i+1]*a[2][j+1]);//1,2
dp[i][j][k]=max(dp[i][j][k],dp[i+1][j][k+1]+(ll)a[1][i+1]*a[3][k+1]);//1,3
dp[i][j][k]=max(dp[i][j][k],dp[i][j+1][k+1]+(ll)a[3][k+1]*a[2][j+1]);//2,3
}
}
}
for(int i=col[1]; ~i; i--){
for(int j=col[2]; ~j; j--){
for(int k=col[3]; ~k; k--){
ans=max(dp[i][j][k],ans);
}
}
}
cout<<ans<<endl;
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
【경쟁 프로 전형적인 90문】008의 해설(python)의 해설 기사입니다. 해설의 이미지를 봐도 모르는 (이해력이 부족한) 것이 많이 있었으므로, 나중에 다시 풀었을 때에 확인할 수 있도록 정리했습니다. ※순차적으로, 모든 문제의 해설 기사를 들어갈 예정입니다. 문자열...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.