로봇에 대한 A. 대회
출석 문제는, 특별한주의가 선고 될 수있다.
#include <bits/stdc++.h>
using namespace std;
const int N=110;
int n,s1,s2,ans,a[N],b[N];
int main()
{
ios::sync_with_stdio(false);
cin>>n;
for(int i=1;i<=n;i++)
cin>>a[i];
for(int i=1;i<=n;i++)
{
cin>>b[i];
if(a[i]==1&&b[i]==0)s1++;
else if(a[i]==0&&b[i]==1)s2++;
}
if(s1==0)printf("-1\n");
else if(s1>s2)printf("1\n");
else
{
if(s2%s1==0)ans=s2/s1+1;
else ans=(int)ceil(1.0*s2/s1);
printf("%d\n",ans);
}
return 0;
}
B. 여행 계획
엄격 증가 서열로부터 공지 된 서열과 임의의 두 인접하는 요소의 순서에서의 차이를 찾아 질문되는 의미하는 원래 시퀀스에서의 위치의 차이와 동일하다 모두 추구 서브 시퀀스 요소의 조건을 충족시키고 최대.
조성식 조건 : A1 서열 두 인접한 A2의 요구에 부합 요소 (위치가 POS1, POS2이다)
갖는 A1-A2-POS2 POS1 = ( A1 <A2, 엄격 증가), 이조을 A1-A2-POS1 = POS2있다. 만큼 POS1 <POS2 같은 확실히 보유 A1 <A2, 상기 (A)의 모든 배열로 다시 [I] -i들이 만나 (A)에 설정 될 수있는 동일한 나타내는 A [i]를 -i를 원래의 시퀀스를 통과하는 것만이 필요하다 서열 조건. A [i]를 제외 -i가 발생할 수 있기 때문에, 열 수있을 때지도 어레이의 최대 값을 찾는 것이 더 편리 이송 후에.
(나 자신에 대해 Tucao 원하는, B 타이틀을하지 않았다하는 C 타이틀을 할 수있는이 시간. 전에 복잡 원하는, 펜윅 나무의도 순서 최대 DP 방향 희망을 증가 보러 가고, 반, 세트를 원하거나 생각 유지 보수 요소 위치가 ... 라인에 나중에 발견 된 전위가, 정말 QAQ이 ... codeforces의 법에 따라, B는 기본적으로 생각하는 문제의 간단한 질문입니다, 그것도 대해 너무 복잡하게 생각하지 것이다)
#include <bits/stdc++.h>
using namespace std;
const int N=2e5+10;
typedef long long ll;
map<ll,ll>vis;
ll n,mx,a[N];
int main()
{
ios::sync_with_stdio(false);
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i];
vis[a[i]-i]+=a[i];
}
for(auto it:vis)
mx=max(mx,it.second);
//注意it遍历容器(而不是迭代器),访问容器类型的值是it.second而不是it->second
//等价于
/*for(auto it=vis.begin();it!=vis.end();it++)
mx=max(mx,it->second);*/ //这里是迭代器访问,所以是 -> 符号
printf("%lld\n",mx);
return 0;
}
새로운 수확
지도를 통과하는 두 가지 방법 ( "게으른"이 될 수는 적은 조금 작성 후)이있다
for(auto it:vis)
cout<<it.second<<endl;//注意it遍历容器(而不是迭代器),访问容器类型的值是it.second而不是it->second
for(auto it=vis.begin();it!=vis.end();it++)
cout<<it->second<<endl;//这里是迭代器访问,所以是 -> 符号
첫 번째 방법은 마주 트래버스 대장을 표현, 주목 값 맵에 액세스 할 때 (점) 기호, 이유는
루프 .FOR 1) 유형 브로 표준 : IS 쌍. 따라서 val.second 용기, 또는이 상관 관계지도 val.first 추출에 필요한 키.
2) .auto 감독이 자동으로 오히려 반복자보다 형 컨테이너 VALUE_TYPE을 밀었다.
(참고 기사 : 루프의 범위에 따라 C ++ 11 연구 노트 )
C. 제거를 인접에게
질문의 의미하는 것은 자신의 ascci 작은 1야드 이상의 인접 문자에서 문자가 긴만큼, 당신에게 소문자를 포함하는 문자열, 당신은 문자를 찾을 수있는 모든 시간을 제공하는 것입니다, 당신은 물어 문자를 삭제할 수 있습니다 당신은 최대 번호를 삭제할 수 있습니다.
데이터의 양 라인에 매우 직접적인 폭력 시뮬레이션 100 만, 매우 작기 때문에. 사 전적으로 큰 문자를 삭제, 조금 생각 탐욕 추가 주문, Z는 (자신의 소문자 존재하지 않는 작은 1 이상의 코드 ascci) 삭제 나 편지에 편지에서이다. 문자열이 한 번 이송 될 횡단 정의의이 상황 bbbba의 유산을 방지하기 위해 때 긍정적이고 부정적인 관심이있다.
#include <bits/stdc++.h>
using namespace std;
string s;
char ch;
int n,ans,vis[150];
int main()
{
ios::sync_with_stdio(false);
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>ch;
s+=ch;
vis[ch]++;
}
for(ch='z';ch>='b';ch--)
{
if(!vis[ch])continue;
for(int i=0;i<s.size();i++)
{
if(s[i]==ch)
{
if((i+1<s.size()&&s[i]-1==s[i+1])||(i-1>=0&&s[i]-1==s[i-1]))
s.erase(s.begin()+i),i--,ans++;
}
}
for(int i=s.size()-1;i>=0;i--)//反向遍历,防止bbbba这种情况误判
{
if(s[i]==ch)
{
if((i+1<s.size()&&s[i]-1==s[i+1])||(i-1>=0&&s[i]-1==s[i-1]))
s.erase(s.begin()+i),i++,ans++;
}
}
}
printf("%d\n",ans);
return 0;
}