Atcoder Beginner-137


题意及思路

  • 题意:求给定两个数中,输出加减乘中最大的那个数。
  • 思路:😏简单题,为了代码简洁,使用了max函数。这题感觉就是考输入输出(牵强)😅

代码

#include<bits/stdc++.h>

using namespace std;

int main()
{
    std::ios::sync_with_stdio(false);
    cin.tie(0);
    int a,b;
    cin >> a >> b;
    int ans = max(a+b,a-b);
    ans = max(ans,a*b);
    cout << ans << endl;
    return 0;
}



题意及思路

  • 题意:一整数序列,其中k个连续的数字标记的石头涂成黑色,求的是,所以可能涂成黑色的石头编号的升序排列,其中会给出一个必定是涂黑的石头x。
  • 思路:😄不难发现的是,包括x在内,一共有k个连续的数被涂成黑色,😚那么可能的区间便是x-(k-1) 到 x+(k-1)闭区间。只需要将其输出即可。

代码

#include<bits/stdc++.h>

using namespace std;

int main()
{
    std::ios::sync_with_stdio(false);
    cin.tie(0);
    int k,x;
    cin >> k >> x;
    for(int i=x-(k-1);i<=x+(k-1);i++){
        cout << i;
        if(i<x+(k-1)) cout << " ";
    }
    cout << endl;
    
    return 0;
}





题意及思路

题意:给出n个字符串,求有多少对完全相同的字符串(即字符串的字典序相同)。
思路:😊对于每一个字符串,先将其本身字典序化。😉将处理后的字符串加入到数组。🙄再将数组集合排序。😏最后,处理字符串集合,处理方式是,先找到相同的字符串个数,根据组合原理,前面有nans个字符串相同,则这nans个字符串能组合出 nans*(nans-1)/2个对。😶举例说明,三个相同字符串,则有3种组合方式。当然了,题目要求的是 si<sj,意思就是不重复选择。

代码

#include<bits/stdc++.h>

using namespace std;

int main()
{
	std::ios::sync_with_stdio(false);
    cin.tie(0);
    int n;
    cin >> n;
    string s;
    vector<string> q;
	 
    for(int i=0;i<n;i++){
    	cin >> s;
    	sort(s.begin(),s.end());
    	q.push_back(s);
	}
	sort(q.begin(),q.end());
	
//	cout << endl;
//	for(int i=0;i<q.size();i++){
//		cout << q[i] << endl;
//	}
//	cout << endl;
	
    long long ans = 0;
    long long nans = 1;
    
    for(int i=1;i<q.size();i++){
    	if(q[i]!=q[i-1]){
    		ans += nans*(nans-1)/2;
    		nans = 1;
		}else{
			nans++;
		}
	}
    ans += nans*(nans-1)/2;
    cout << ans << endl;
	    
	return 0;
}


全部评论

相关推荐

暴杀流调参工作者:春招又试了一些岗位,现在投递很有意思,不仅要精心准备简历,投递官网还得把自己写的东西一条一条复制上去,阿里更是各个bu都有自己的官网,重复操作无数次,投完简历卡完学历了,又该写性格测评、能力测评,写完了又要写专业笔试,最近还有些公司搞了AI辅助编程笔试,有些还有AI面试,对着机器人话也听不明白录屏硬说,终于到了人工面试又要一二三四面,小组成员面主管面部门主管面hr面,次次都没出错机会,稍有不慎就是挂。 卡学历卡项目卡论文卡实习什么都卡,没有不卡的😂
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务