B 为欢几何
题意:输入n个字符串,输出n个字符,分别是每个字符串的首字母。
分析:直接使用二维数组输入输出即可。
题解:
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int main()
{
int n;
cin >> n;
string s[10];
for(int i=0;i<n;i++)
{
cin >> s[i];
}
for(int i=0;i<n;i++)
cout << s[i][0];
return 0;
}
F 青山隐隐,败叶萧萧
题意:给你n个数,每个数a[i]都可以任意+2或 - 2,且保证a[i]非负,问是否满足条件a[i]是个质数,且a[i]+a[i+1]也是质数。
分析:由于每个数可以进行 - 2的操作,我们从最简单的质数做起,2,3,5,如果这个数是奇数就变为3,如果这个数是偶数就变为2,这样只要相邻两个数不是同为奇数偶数就满足条件。
题解:
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int a[1500];
int main()
{
int t;
cin >> t;
while(t--)
{
int n;
cin >> n;
for(int i=0;i<n;i++)
cin >> a[i];
bool f = 1;
for(int i=0;i<n-1;i++)
{
if(a[i]%2&&a[i+1]%2)
f = 0;
if(a[i]%2==0&&a[i+1]%2==0)
f = 0;
}
if(f) cout << "YES\n";
else cout << "NO\n";
}
return 0;
}
H 岸风翻夕浪,舟雪洒寒灯
题意:给你一个序列S1 = 1,Sn = Sn-1 + n + Sn-1,(+表示连接),求第k个数是多少。
分析:通过观察发现一个规律,第k个数为其二进制中最小一位1的位置加1。
题解:
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int main()
{
ll n;
cin >> n;
int p = 0;
while(1)
{
if(n&1==1)
break;
p++;
n>>=1;
}
cout << p+1;
return 0;
}