又是卡在了T4 , 总分 100 + 200 + 300 = 600pts rank 2449。以后还是要多积累比赛经验。
输出a+b,a-b,a*b中最大的数,还要多简单?不挂代码了
看不懂?(我也看不懂) 还是看样例算了(我是看样例懂的)
样例输入 3 7
样例输出 5 6 7 8 9
解释: 我们知道有三块石头漆成黑色,坐标7处的石头漆成黑色。有三种可能的情况:\(567\),\(678\),\(789\) ,故56789
这下懂了吧?
以x为原点,向左延伸k格,向右延伸k格,输出这个区间。
Code
#include<algorithm>
#include<iostream>
#include<cstdio>
#include<cmath>
#define N 1000000
using namespace std;
inline int read() {
int x=0,f=1; char ch=getchar();
while(ch<'0' || ch>'9') { if(ch=='-') f=-1; ch=getchar(); }
while(ch>='0'&&ch<='9') { x=(x<<3)+(x<<1)+(ch^48); ch=getchar(); }
return x * f;
}
int k,x;
int main()
{
k = read() ,x = read();
int l = max(-N , x-k+1);
int r = min(N , x+k-1);
for(int i=l;i<=r;++i)
printf("%d ",i);
return 0;
}
给定\(n(2<=n<=10^5)\)个字符串,问有多少对字符串本质是一样的(即组成的字母一样)?
如 killbunny
和 bunnykill
本质是一样的,所以他们构成一对本质一样的字符串(题目保证全是小写且字符串长度均为10)。
想到了把每种本质相同的字符串变成一样的
或者直接说每个字符串排一下序,如 bbbcccaaad
变成 aaabbbcccd
(按字典序),就解决本质相同的字符串了
用map来处理本质相同字符串有多少个,然后考虑每个本质相同的字符串的贡献
举例 : 如果本质都是 killbunny
的字符串有3个,这中间就能两两连线连出 2 + 1条线,脑补一下,不难发现,如果本质都是killbunny
的字符串有4个,两两配对就能有3 + 2 + 1条线。 故有本质相同的字符串m个,就有n-1 + n-2 + ... + 2 + 1条线,也就是有多少对。
Code
#include<algorithm>
#include<iostream>
#include<cstring>
#include<cstdio>
#include<cmath>
#include<map>
#define int long long
using namespace std;
inline int read() {
int x=0,f=1; char ch=getchar();
while(ch<'0' || ch>'9') { if(ch=='-') f=-1; ch=getchar(); }
while(ch>='0'&&ch<='9') { x=(x<<3)+(x<<1)+(ch^48); ch=getchar(); }
return x * f;
}
const int N = 1e5+7;
map<string,int> mp;
string name[N];
int n,cnt,ans;
signed main()
{
cin>>n;
int len = 10;
for(int i=1;i<=n;++i) {
char s[15];
cin>>s;
sort(s,s+strlen(s));
if(!mp[s]) name[++cnt] = s;
mp[s]++;
}
for(int i=1;i<=cnt;++i) {
int num = mp[name[i]];
num--; ans += ( (1+num)*num ) / 2;
}
printf("%lld\n",ans);
return 0;
}
贪心 + (堆?)
先挖坑,待会去学怎么做
先挖坑,待会去学怎么做
原文:https://www.cnblogs.com/BaseAI/p/11333284.html