给你两个字符串s1,s2,若s1中的一部分与字符串s2完全相同,则删去这部分。如果删除后s1中仍存在某一部分与s2相同,则继续删除下去,直到s1中没有任何一部分与s2相同
多组输入
第一行给你两个字符串,用空格分开,保证字符串s2中的各个字符都是不同的,字符串s1,s2长度大于等于1小于等于100
输出s1字符串,若s1字符串为空,则输出NULL
aaawww aw
awslawslaw awsl
qifei wuhu
NULL
aw
qifei
对于第一组样例,字符串s1的变化过程为
aaawww--->aaww--->aw--->NULL
对于第二组样例,字符串s1的变化过程为
awslawslaw--->aw
对于第三组样例,字符串s1的变化过程为
qifei
这是本场的第一道题,难度适中,主要考察字符串的处理问题。
解题思路:每次删除S1中的S2就把那些字符替换为'\0',然后每次循环把S1更新一遍,最后S1的长度为0输出NULL否则输出剩下的S1。
如果单次循环未删除任何字符就退出break。注意多组输入!!!
代码如下:
#include
using namespace std;
int main(void)
{
char s1[105],s2[105],ch[105];//ch是中转字符串,用于更新S1
while(cin>>s1>>s2)
{
int lens1=strlen(s1);
int lens2=strlen(s2);
int len=lens1;
while(1)
{
int flag=1;//判断是否有删除操作
lens1=strlen(s1);
memset(ch,0,sizeof(ch));
for(int i=0;i0, 0, -1, 1}; //上下左右搜索数组
int n, m, k, a, b;
void dfs(int x, int y)
{
mp[x][y] = 1;//将黑棋变为白棋
for (int i = 0; i < 4; ++i)
{
int nx = dx[i] + x;//下一个棋子的行
int ny = dy[i] + y;//下一个棋子的列
if (nx = 1 && nx a >> b;
for (int i = 1; i a[i].y)//如果时间大于这个金块花费的时间就直接加上它的价值
{
sum += a[i].x;
m -= a[i].y;
}
else
{
sum += a[i].x * m / a[i].y;//把剩下的时间转化为相应比例的价值,然后退出循环
break;
}
}
printf("%.2lf\n", sum);
return 0;
}
这道题我以前做过一道相似的题目(不过找不到了),接替的关键也就是单位时间的价值排序。
H 天之杯已知一个圆柱体的底面半径为r,高为h,若在这个圆柱体上切一刀后,其对应的切面面积最大应该是多少?Π等于4
单组数据
第一行包含两个整数r,h(1 r >> h; printf("%.2lf", 2 * r * sqrt(4 * r * r + h * h)); return 0; }
_______________________________
以上就是本次比赛的全部题目,都是很简单基础的,大家都能做就看谁做的快,所以这次未能AK算是一点小小的遗憾吧
如过本文有错误或者哪里有问题请在评论区留言,欢迎大家留言
当然也可私聊我:QQ:1196991321
over,玩游戏去了
