A:
解题思路:
判断改变第一个,后面字符根据前一个字符判断是否改变
判断改变第二个,同上,找到最小改变值。
下面是c++代码:
#include<iostream>
using namespace std;
int main()
{
string s,s1,s2;
int sum1 = 0,sum2 = 0;
cin >> s;
s1 = s;
for(int i = 1;i < s.length();i++){
if(s[i] == s[i - 1]){
s[i] = (s[i] == '1' ? '0' : '1');
sum1 += i + 1;
}
}
s1[0] = (s1[0] == '1' ? '0' : '1');
sum2++;
for(int i = 1;i < s.length();i++){
if(s1[i] == s1[i - 1]){
s1[i] = (s1[i] == '1' ? '0' : '1');
sum2 += i + 1;
}
}
cout << min(sum1,sum2);
return 0;
}
B:
解题思路:
被这题搞到心态了,没有理解题目意思,只要判断字符串里是否只有“Baidu”这五个字符。
下面是c++代码:
#include<iostream>
using namespace std;
int main()
{
int n, B = 0, a = 0, j = 0, d = 0, u = 0;
string s;
cin >> n;
while (n != 0) {
B = 0, a = 0, j = 0, d = 0, u = 0;
cin >> s;
if(s.length() != 5){
cout << "No" << endl;
}else{
for(int i = 0 ; i < s.length();i++){
if(s[i] == 'B'){
B++;
}else if(s[i] == 'a'){
a++;
}else if(s[i] == 'i'){
j++;
}else if(s[i] == 'd'){
d++;
}else if(s[i] == 'u'){
u++;
}
}
if(B == 1 && a == 1 && j == 1 && d == 1 && u == 1){
cout << "Yes" << endl;
}else{
cout << "No" << endl;
}
}
n--;
}
return 0;
}
C:
解题思路:
按照题目意思模拟就好,没啥说的。
下面是c++代码:
#include<iostream>
using namespace std;
int main()
{
int t,n,k,u,v;
cin >> t;
while(t != 0){
int arr[100],index = 1;
cin >> n >> k;
for(int i = 0;i < n;i++){
cin >> arr[i];
}
for(int i = 0;i < k;i++){
cin >> u >> v;
arr[u - 1]++,arr[v - 1]--;
}
for(int i = 1;i < n;i++){
if(arr[i] < arr[i - 1]){
index = 0;
break;
}
}
if(index == 0){
cout << "No" << endl;
}else{
cout << "Yes" << endl;
}
t--;
}
return 0;
}
D:
解题思路:
以字符串的形式输入,只要判断两部分的最后一个数是偶数还是奇数就行。
下面是c++代码:
#include<iostream>
using namespace std;
int main()
{
int sum = 0;
string s;
cin >> s;
for(int i = s.length() - 2;i >= 0;i--){
if(s[i] % 2 == 0 && s[s.length() - 1] % 2 == 0){
sum++;
}else if(s[i] % 2 != 0 && s[s.length() - 1] % 2 != 0){
sum++;
}
}
cout << sum;
return 0;
}
E:
解题思路:
奇数行正着输出,偶数行倒着输出。
下面是c++代码:
#include<iostream>
using namespace std;
int cnt=1;
const int N=110;
int a[N][N];
int main(){
int n;
cin>>n;
if(n%2){
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
cout<<cnt<<' ';
cnt++;
}
cout<<endl;
}
}
else{
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if(i%2){
a[i][j]=cnt++;
}
else{
a[i][n-j+1]=cnt++;
}
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
cout<<a[i][j]<<' ';
}
cout<<endl;
}
}
return 0;
}