2020 년 '원광 배' 광 둥 오 컴퓨터 프로 그래 밍 대회 온라인 자격 경기 문제 풀이 1
77750 단어 acm원광 배광 둥 오 컴퓨터 프로 그래 밍북경알고리즘
제목 이 너무 많아 두 편의 문장 으로 나 뉘 어 총 결 되 었 기 때문에, 이 편 은 앞의 1 ~ 10 문제 이다.게다가 부두 의 문장 이 너무 길 어서 거푸집 을 마지막 에 놓 았 다.
뭔 가 잘 모 르 는 얘 기 가 있 으 면 댓 글 을 환영 합 니 다.
글 목록
사고방식: 시 뮬 레이 션 하면 돼. 구덩이 얘 기 좀 해 봐.
코드:
const int manx=1e6+5;
ll day[13]={
0,31,28,31,30,31,30,31,31,30,31,30,31};
bool pdsb(string s){
if(s.size()!=8) return true;
for(int i=0;i<s.size();i++){
if(s[i]<='9'&&s[i]>='0') continue;
else return true;
}
ll year=0,mon=0,da=0;
for(int i=0;i<4;i++) year=year*10+(s[i]-'0');
if(year<1900||year>2020) return true;
for(int i=4;i<6;i++) mon=mon*10+(s[i]-'0');
if(mon<1||mon>12) return true;
for(int i=6;i<8;i++) da=da*10+(s[i]-'0');
ll sb=day[mon];
if(mon==2 && (year%400==0||(year%4==0&&year%100))) sb++;
if(da<1||da>sb) return true;
return false;
}
bool pds(string s){
for(int i=0;i<s.size();i++){
if(s[i]<='z'&&s[i]>='a') continue;
else if(s[i]<='Z'&&s[i]>='A') continue;
else if(s[i]==' ') continue;
else return true;
}
return false;
}
int main(){
string sb,s;
while(cin>>sb){
ll k=0;
getchar(); getline(cin,s);
if(pdsb(sb)||pds(s)){
cout<<"none"<<endl;
continue;
}
for(int i=0;i<sb.size();i++) k+= sb[i]-'0';
while(k>=10){
ll x=0;
while(k){
x+=k%10; k/=10;
}
k=x;
}
ll n=s.size();
for(int i=0;i<n;i++){
if(s[i]==' ') cout<<'#';
if(s[i]>='a'&&s[i]<='z'){
cout<<
(char)(((s[i]-'a'+k)%26)+'a')
;
}
if(s[i]>='A'&&s[i]<='Z'){
cout<<
(char)(((s[i]-'A'+k)%26)+'A')
;
}
}
cout<<endl;
}
return 0;
}
B. 오늘 무슨 요일 이에 요?
사고: 시 뮬 레이 션 을 하면 됩 니 다. 매년 윤년 인지 아 닌 지 를 잘 판단 하고 1 년 에 한 번 씩 줄 이면 됩 니 다.
코드:
ll day[13]={
0,31,28,31,30,31,30,31,31,30,31,30,31};
ll a,b,c,s;
void pd(ll a){
if(a%4==0&&a%100){
s-=day[2]; day[2]=29; s+=day[2];
}
else if(a%400==0){
s-=day[2]; day[2]=29; s+=day[2];
}
else{
s-=day[2]; day[2]=28; s+=day[2];
}
}
void cal(){
ll cnt=0;
for(int i=1;i<b;i++) cnt+=day[i];
cnt+=c;
--a;
while(a>=2000){
pd(a);
cnt+=s;
a--;
}
ll d=cnt/4;
if(cnt%4) d++;
cout<<d<<" ";
if(cnt%4==1) cout<<1<<endl;
else if(cnt%4==2) cout<<2<<endl;
else if(cnt%4==3) cout<<3<<endl;
else cout<<4<<endl;
}
int main(){
for(int i=1;i<=12;i++) s+=day[i];
while(cin>>a>>b>>c){
pd(a);
cal();
}
return 0;
}
C. 샤 오 밍 의 영어 숙제
사고방식: 맵 은 단어의 출현 횟수 를 통계 하고 출현 횟수 가 1 인 단어 가 n / 2 보다 큰 지 판단 한다.
코드:
map<string,ll>vis;
int main(){
string s;
while(1){
getline(cin,s);
if(s[0]=='#') break;
vis.clear();
ll cnt=1;
ll k=0;
// cout<
for(int i=0;i<s.length();i++){
if(s[i]!=' ') continue;
string c="";
for(int j=k;j<i;j++)
c+=s[j];
vis[c]++; cnt++; k=i+1;
// cout<
}
string c="";
for(int j=k+1;j<s.size();j++)
c+=s[j];
vis[c]++; cnt++;
ll ans=0;
for(auto x: vis){
if(x.second==1) ans++;
}
// cout<
if(ans>=cnt/2) put1();
else put2();
}
return 0;
}
D. 세 줄 로 나 누 기
사고방식: 3 에 나머지 를 취하 고 상황 에 따라 출력 한다.
코드:
vector<ll>g[5];
int main(){
ll n; io; cin>>n;
//while(cin>>n){
g[1].clear(); g[2].clear(); g[3].clear();
for(int i=1;i<=n;i++){
ll x; cin>>x;
g[i%3].pb(x);
}
for(int i=1;i<3;i++){
for(int j=0;j<g[i].size();j++)
cout<<g[i][j]<<" ";
cout<<endl;
}
for(int j=0;j<g[0].size();j++)
cout<<g[0][j]<<" ";
cout<<endl;
//}
return 0;
}
E. 목표물 타격
생각:
코드:
F .
:
:
G .
:map 。
:
map<ll,ll>vis;
int main(){
io;
ll n; cin>>n; ll ans=0,res=0;
for(int i=1;i<=n;i++){
ll x; cin>>x;
vis[x]++;
if(vis[x]>res) res=vis[x],ans=x;
}
cout<<ans<<endl;
return 0;
}
H .
:
:
I .
: , + , 。
:
struct node{
ll id;
ll b,c,d;
ll s;
}a[manx];
bool cmp(node a,node b){
if(a.s==b.s){
if(a.b==b.b) return a.id<b.id;
return a.b>b.b;
}
return a.s>b.s;
}
int main(){
ll n; io; cin>>n;
for(int i=1;i<=n;i++){
a[i].id=i;
cin>>a[i].b>>a[i].c>>a[i].d;
a[i].s=a[i].b+a[i].c+a[i].d;
}
sort(a+1,a+1+n,cmp);
for(int i=1;i<=5;i++){
cout<<a[i].id<<" "<<a[i].b<<" "<<a[i].c<<" "<<a[i].d<<endl;
}
return 0;
}
J .
: 90° 1 , 。
:
char c[10];
ll ans,ans1,ans2,ans3;
ll lg[10];
ll pd(){
ll x=0;
for(int k=1;k<=8;k++){
x+= ( (c[9]-'0')^(c[k]-'0') )*lg[8-k];
}
return x;
}
int main(){
ll n; cin>>n;
lg[0]=1;
for(int i=1;i<=10;i++) lg[i]=lg[i-1]*2;
while(n--){
ans=ans1=ans2=ans3=0;
cin>>c[1]>>c[2]>>c[3]>>c[8]>>c[9]>>c[4]>>c[7]>>c[6]>>c[5];
ans=pd();
char x=c[1];
swap(c[3],c[5]); swap(c[3],c[7]); swap(c[1],c[3]);
swap(c[2],c[4]); swap(c[2],c[6]); swap(c[2],c[8]);
ans1=pd();
swap(c[3],c[5]); swap(c[3],c[7]); swap(c[1],c[3]);
swap(c[2],c[4]); swap(c[2],c[6]); swap(c[2],c[8]);
ans2=pd();
swap(c[3],c[5]); swap(c[3],c[7]); swap(c[1],c[3]);
swap(c[2],c[4]); swap(c[2],c[6]); swap(c[2],c[8]);
ans3=pd();
ans=min(ans,ans1); ans=min(ans,ans2); ans=min(ans,ans3);
cout<<ans<<endl;
}
return 0;
}
ends:
#include
#define mp make_pair
#define pb push_back
#define ll long long
#define fi first
#define se second
#define inf 0x3f3f3f3f
#define io std::ios::sync_with_stdio(false),cin.tie(0),cout.tie(0)
using namespace std;
inline ll read(){
ll s=0,w=1;char ch=getchar();
while(ch<'0'||ch>'9'){
if(ch=='-')w=-1;ch=getchar();}
while(ch>='0'&&ch<='9') s=s*10+ch-'0',ch=getchar();return s*w;}
void put1(){
puts("Yes") ;}void put2(){
puts("No") ;}void put3(){
puts("-1"); }
ll qp(ll a,ll b, ll p){
ll ans = 1;while(b){
if(b&1){
ans = (ans*a)%p;--b;}a =
(a*a)%p;b >>= 1;}return ans%p;}
const int mo=998244353; const int mod=1000000007;
const int manx=1e6+5;
int main(){
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
AWS에서 사용하는 SSL 인증서 관리를 IAM에서 ACM으로 변경해야 하는 이유자신이 담당하는 시스템에서 ELB에 등록한 SSL 인증서를 IAM 관리에서 ACM 관리로 변경했습니다. AWS 기능을 사용하여 SSL 인증서를 관리하는 방법에는 두 가지가 있습니다. IAM을 이용하는 방법과 ACM을...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.