博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HRZ~序列+学英语-咕咕东的奇妙序列
阅读量:3950 次
发布时间:2019-05-24

本文共 1691 字,大约阅读时间需要 5 分钟。

目录

HRZ的序列

在这里插入图片描述

在这里插入图片描述

这是一道需要把数组开大点的题,比如我开的1e4+10,然后它一直WA,我到处找错误,实在找不出来了然后我把数组的maxn换成了1e5+10,它就过了,我表示emmmm
#include
#include
using namespace std;const int maxn=1e5+10;int t,n,tag;long long int k,a[maxn];void judge(){
for(int j=0;j
>a[j]; sort(a,a+n,less
()); if(a[0]==a[n-1]){
cout<<"YES"<
>t; for(int i=0;i
>n; judge(); } return 0;}

HRZ学英语

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

分析,此题要求输出最小字典序的字母序列,开始我犯了

一个严重错误,以为必须满足顺序A~Z输出都是
A~Z,然后WA了半天。
然后这个题的做法和尺取相似,每次取26个字母,如果满足A~Z26个字母
各出现1次,那么就满足条件,更新答案,输出最小字典序的答案

Codes

#include
#include
#include
using namespace std;const int maxn=1e6+10;int n,a[30];char str[maxn],s[30];void judge(){
int l=0,r=25; while(r
=0 && str[i+l]-'A'<26) a[str[i+l]-'A']++; if(a[str[i+l]-'A'] > 1) flag=0; } if(flag==0){
l++;r++; continue; } int tag=0; for(int i=0;i<26;i++) if(a[i]==0) s[++tag]=(char)(i+'A'); tag=0; for(int i=l;i<=r;i++){
if(str[i]!='?') cout<

咕咕东的奇妙序列

在这里插入图片描述

在这里插入图片描述

这道题所谓的序列,其实它长这样

1
1 2
1 2 3
1 2 3 4
···
必须注意的是到10的时候,就有2个数字,前面n*(n+1)/2,数字和n<10,
可以把它看成一个等差数列,等差d前期1,后面2,再后面就一直d++,因为位数增多,所以d会跟着增加

Codes

#include
#include
#include
#define ll long longusing namespace std;ll q,k;ll gains(ll x,int flag){
ll cnt=1,sum=0,sum1=0,n=0,d=0; while(1){
cnt*=10;d++; if(x>cnt-1){
n=cnt-cnt/10; sum+=(sum1+d)*n+n*(n-1)/2*d; sum1+=n*d; } else{
n=x-cnt/10+1; sum+=(sum1+d)*n+n*(n-1)/2*d; sum1+=n*d; break; } } return flag ? sum:sum1;}void check(){
ll l,r,mid,ans; while(q--){
scanf("%lld",&k); l=0,r=1e9; while(l<=r){
mid=(l+r)/2; if(gains(mid,1)

转载地址:http://fdwzi.baihongyu.com/

你可能感兴趣的文章
如何在JNI中抛异常
查看>>
Android应用程序的完全退出
查看>>
Task和Activity相关的一些属性
查看>>
JAVA系统属性之user.home
查看>>
Android代码截屏
查看>>
Android中打印代码的调用层次
查看>>
成功者十三个价值连城的习惯
查看>>
特别成功的人会做6件事
查看>>
Android: 用jni 获取MAC地址
查看>>
字符串列表的C语言实现:c_strlist
查看>>
客户沟通的方式:礼貌待客沟通方式,技巧推广沟通方式,个性服务沟通方式
查看>>
用弹性工作制留住员工
查看>>
知识=经验×反思2
查看>>
领导者如何发现关键问题
查看>>
学习无为领导力
查看>>
卓越领导看过程
查看>>
领导力与各种循环挑战
查看>>
达成谈判协议 - 避免操之过急
查看>>
销售人说话“十大忌”
查看>>
营销中的“战略非对称”
查看>>