2019 计蒜之道 初赛 第六场

A.

https://nanti.jisuanke.com/t/39455

VIPKID 是全球增长速度最快的在线青少儿英语教育品牌,纯北美外教 11 对 11 在线授课,通过互联网的方式将中国小朋友与北美老师连接起来。VIPKID 为了帮每个孩子找到最适合自己的外教老师,会对外教在教学上的语言、技能等多层维度划定数百个标签,再结合智能算法进行师生匹配,向学员推荐最合适其本人的外教。

VIPKID 通过大数据和标签来智能地进行师生匹配。当我们把标签抽象成括号 ( ),匹配过程简化为括号串的匹配,希望聪明的你来解决如下问题:判断给定的括号序列是否合法且反回文。

对于这样标签抽象组成的括号序列,我们有如下定义:

合法的的括号序列:

  • 空序列;
  • 如果AA、BB是合法的括号序列,那么(A)(A)和ABAB都是合法的括号序列;

反回文的括号序列:如果序列长度为 LL,且字符从 00 开始编号,那么任意的 S[i]S[i] 和 S[L-i-1]S[Li1] 对应的字符应该不同。(i 的取值范围 0≤i≤L1 )

输入格式

一行一个字符串 SS。

输出格式

如果是合法且反回文的串,输出 "YES",否则输出 "NO"。(均无双引号)

数据规模

SS 长度小于10^1e6

样例输入1

()()()

样例输出1

YES

样例输入2

()(())

样例输出2

NO
题意:括号匹配+判断反回文
 1 #include <bits/stdc++.h>
 2 
 3 using namespace std;
 4 
 5 int main()
 6 {
 7     ios::sync_with_stdio(0);
 8     cin.tie(0);
 9     cout.tie(0);
10 
11     string str;
12     bool kuohao,fanhuiwen;
13     stack<char> sc;
14     //while(cin>>str){
15     cin>>str;
16         kuohao=true;
17         fanhuiwen=true;
18         char tmp;
19         for(int i=0;i<str.size();i++){
20             if(str[i]=='('){
21                 sc.push(str[i]);
22             }else if(str[i]==')'){
23                 if(sc.empty()){
24                     kuohao=false;
25                     break;
26                 }else{
27                     tmp=sc.top(); sc.pop();
28                     if(tmp=='('){
29                         continue;
30                     }else{
31                         kuohao=false;
32                         break;
33                     }
34 
35                 }
36             }
37         }
38         if(!sc.empty()) kuohao=false;
39 
40         int strlen=str.size();
41         for(int i=0;i<=strlen/2;i++){
42             if(str[i]==str[strlen-i-1]){
43                 fanhuiwen=false;
44                 break;
45             }
46         }
47         if(kuohao&&fanhuiwen){
48             cout<<"YES"<<endl;
49         }else{
50             cout<<"NO"<<endl;
51         }
52     //}
53     return 0;
54 }
View Code

 

BC.

https://nanti.jisuanke.com/t/39457

样例输入

3
1 3 5
0 1 2
5
1 2 3 4 5

样例输出

0 1 1 2 2

题意: 按公式暴力,注意用long long 。

 1 #include <bits/stdc++.h>
 2 
 3 using namespace std;
 4 
 5 long long a[1000005],b[1000005],q[1000005];
 6 long long resu[1000005];
 7 
 8 int main()
 9 {
10     ios::sync_with_stdio(0);
11     cin.tie(0);
12     cout.tie(0);
13 
14     int n,Q;
15     cin>>n;
16     for(int i=0;i<n;i++){
17         cin>>a[i];
18     }
19     for(int i=0;i<n;i++){
20         cin>>b[i];
21     }
22     cin>>Q;
23     for(int i=0;i<Q;i++){
24         cin>>q[i];
25     }
26     long long minn=1e19;
27     for(int i=0;i<Q;i++){
28         minn=1e19;
29         long long tmp=0;
30         for(int j=0;j<n;j++){
31             long long chengji=(q[i]-a[j]);
32             tmp=chengji*chengji+b[j];
33             minn=min(minn,tmp);
34         }
35         resu[i]=minn;
36     }
37     for(int i=0;i<Q;i++){
38         cout<<resu[i]<<" ";
39     }
40     return 0;
41 }
View Code

D:未做

 

posted @ 2019-06-09 14:08  多一份不为什么的坚持  阅读(370)  评论(0编辑  收藏  举报