2 条题解

  • 0
    @ 2024-10-13 11:12:56

    #include<stdio.h> #include<iostream> using namespace std; int main() { int t; cin >> t; while(t--) { int n; cin >> n; char a[n+5]; cin >> a; if(a[n-1]'J') cout << "Jiu winner!" << endl; else if(a[n-1]'Z') cout << "Zhong winner!" << endl; } return 0; }

    • 0
      @ 2024-10-12 20:43:00

      题意:

      小玖和仲夏比赛,当小玖或者仲夏其中一名玩家赢 X 次后这一组结束,当其中一个人赢了 Y 组后整个比赛结束。 题目给T个样例,对于每一个样例,有一个整数 n 和一个长度为 n 的由 'J''Z' 组成的字符串。J 表示小玖赢了,Z表示仲夏赢了。

      这n次比赛结束后,有一个玩家赢了,问谁赢了?

      思路:

      思维题。

      我们考虑一组为什么结束? 这一组出现一个人赢的次数达到了 X 次,这组赢了。

      那比赛为什么结束? 整局比赛出现一个人赢的组数达到了 Y 组,整局比赛赢了。

      所以是不是这个字符串的最后一个字母代表游戏胜利者?

      所以我们只需要判断输入的最后一个字母是什么,如果是 ‘J’,就输出 Jiu winner!,如果是 ‘Z’,就输出 Zhong winner!

      代码实现:

      #include<stdio.h>
      
      char a[25];
      
      int main(){
      
      	int t;
      	scanf("%d",&t);
      	while(t --)
      	{
      		int n;
      		scanf("%d",&n);
      		scanf("%s",a);
      		
      		if(a[n-1]=='J')
      		{
      			printf("Jiu winner!\n");
      		}
      		else
      		{
      			printf("Zhong winner!\n");
      		}
      	}
      	return 0;
      }
      

      时间复杂度

      O(T).

      • 1

      信息

      ID
      1003
      时间
      1000ms
      内存
      256MiB
      难度
      7
      标签
      递交数
      157
      已通过
      33
      上传者