AcWing第 80 场周赛
admin
2024-03-16 05:30:38

末尾字母

给定一个由大小写字母、空格和问号组成的字符串。

请你判断字符串中的最后一个字母是否是元音字母。

我们认为元音字母共有 6 个,分别为:A、E、I、O、U、Y(当然还有它们的小写)。

输入格式

一个由大小写字母、空格和问号组成的字符串。

保证问号在字符串中恰好出现一次,且一定出现在最后。

字符串中至少包含一个字母。

输出格式

如果字符串中的最后一个字母是元音字母,则输出 YES,否则输出 NO

注意,我们问的是最后一个字母,而不是最后一个字符,空格和问号不算作字母。

数据范围

所有测试点满足,输入字符串的长度范围 [2,100]。

输入样例1:

Is it a melon?

输出样例1:

NO

输入样例2:

Is it an apple?

输出样例2:

YES

输入样例3:

  Is     it a banana ?

输出样例3:

YES

输入样例4:

Is   it an apple  and a  banana   simultaneouSLY?

输出样例4:

YES

第一个版本,可以先按照思路一步一步写。定义一个字符串a表示初次输入的那个字符串,需要包含空格输入所以我们使用getline。在这个while循环里提出字母的字符,并负值于字符串b。获取倒数第一个字母是否为,aeiouy。

#include
using namespace std;
int main()
{string a;string b;while(getline(cin,a)){int n=a.size();int temp = 0;for(int i=0;i

 在这个的基础上,做一些改进


#include 
using namespace std;
char ch,ans = ' ';
string s = "aoeiuy";
int main () {while (cin >> ch) {if (isalpha (ch)) ans = ch;}if (s.find (tolower (ans)) != -1) puts ("YES");else puts ("NO");return 0;
}

 寻找数字

给定一个正整数 n,请你找到一个正整数 x,要求:

  1. x≥n
  2. x 的各个数位均不包含 4 和 7 以外的数字,且 x 中包含的 4 的数量与 7 的数量恰好相等。
  3. 满足前两个条件的前提下,x 应尽可能小。

输入格式

一个正整数 n。

输出格式

一个正整数,表示 x。

数据范围

前 66 个测试点满足 1≤n≤5000。
所有测试点满足 1≤n≤109。

输入样例1:

4500

输出样例1:

4747

输入样例2:

47

输出样例2:

47

最开始想到的就是用打表,但是在acwing上肯定超时。

#include 
using namespace std; 
int main() 
{ for(int i=1;i<=1000000000;i++){ int s=0,f=0; int t=i,ok=1; while(t>0){ if(t%10==4)f++; else if(t%10==7)s++; else ok=0; t/=10; } if(s==f&&ok)cout<<" else if(n<="<

摆放棋子

给定 n1n1 个完全相同的黑色棋子和 n2n2 个完全相同的白色棋子。

请你将所有棋子摆成一排。

在所有棋子都摆放好后,需满足:

  1. 不得有超过 k1k1 (即大于 k1k1)个黑色棋子连续相邻的排在一起。
  2. 不得有超过 k2k2 (即大于 k2k2)个白色棋子连续相邻的排在一起。

请问一共有多少种不同的摆放方法。

由于结果可能很大,你只需要输出对 108108 取模后的结果。

输入格式

共一行,包含 44 个整数 n1,n2,k1,k2n1,n2,k1,k2。

输出格式

输出满足要求的摆放方法数量对 108108 取模后的结果。

数据范围

前 44 个测试点满足 1≤n1,n2≤101≤n1,n2≤10。
所有测试点满足 1≤n1,n2≤1001≤n1,n2≤100,1≤k1,k2≤101≤k1,k2≤10。

输入样例1:

2 1 1 10

输出样例1:

1

输入样例2:

2 3 1 2

输出样例2:

5

输入样例3:

2 4 1 1

输出样例3:

0

定义状态f[i][j][k]  为前 i 个棋子,j 个白棋,最后填的是k ( 0 表示最后填黑,1 表示最后填白)其中aa 为枚举填的棋子数量,第一个式子推的是填白棋,第二个式子推的是填黑棋,答案就是 (f[n][n2][0]+f[n][n2][1])modp(f[n][n2][0]+f[n][n2][1])modp ,n 为总棋子个数,注意第一维要开两倍。

#include 
#define pc(c) putchar(c)
#define rep(a,b,c) for (int (a) = (b) ; (a) < (c) ; ++(a))
using namespace std;
using ll = long long ;
using pii = pair ;const int maxn = 210 ,p = 1e8;
int f[maxn][maxn][2]; 
int main(){int n1,n2,k1,k2,n;cin >> n1 >> n2 >> k1 >> k2 ;f[0][0][0] = f[0][0][1] = 1;   n = n1 + n2 ;    for (int i = 1 ; i <= n ; ++ i ){for (int j = 0; j <= n2 && j <= i ; ++ j){ if ( i > n1 + j ) continue ;     for (int a = 1 ; a <= j && a <= k2 ; ++ a) { f[i][j][1] = (f[i][j][1] + f[i - a][j - a][0]) % p ;}for (int a = 1 ; j + a <= i && a <= k1 ; ++ a ){  f[i][j][0] = (f[i][j][0] + f[i - a][j][1]) % p;}}}cout << (f[n][n2][0] + f[n][n2][1]) % p;return 0;   
}

 

相关内容

热门资讯

十年来长江经济带优良水质比例从... (来源:荔枝新闻)转自:荔枝新闻荔枝新闻中心北京工作部记者/刘辛1月5日,国务院新闻办公室举行新闻发...
安徽一医院因过度诊疗被罚超98... 转自:北京日报客户端信用中国(安徽)网站显示,近日,枞阳县中医院因违反诊疗规范过度诊疗,被枞阳县医疗...
中国国家税务总局更新发布90份... 中新社北京1月5日电 (记者 赵建华)中国国家税务总局5日更新发布90份《国别(地区)投资税收指南》...
如果王楚钦是国乒一哥,那么樊振... 马龙一句“有王楚钦在我们都很心定”的认可还在回响,樊振东在德国杯夺冠并捧起MVP奖杯的照片已经传遍全...
原创 美... 当特朗普在社交平台上敲下已抓获马杜罗这一行字时,曾自诩为自由捍卫者的美国,已彻底揭开了道德的面具,露...