bzoj 4830: [Hnoi2017]抛硬币美高梅4688.com

Description

小A和小B是一对好情人,他们日常一同欢乐的游玩。近期小B沉迷于**师手游,每日刷本,根本无意搞学习。然而
早就入坑了多少个月,却三次都并未抽到SSR,让她百般怀疑人生。勤苦的小A为了劝说小B早日脱坑,认真学习,决
定以抛硬币的款型让小B了解他是一个彻彻底底的欧洲人,从而对这一个游乐绝望。五个人还要抛b次硬币,假如小A
的自重朝上的次数超越小B正面朝上的次数,则小A获胜。但实际,小A也已经沉迷过拉拉游戏,而且她两次UR也
从不抽到过,所以他对此自己的大运也尚无太大把握。所以她操纵在小B没留意的时候作弊,悄悄地多抛五次硬币
,当然,为了不让小B怀疑,他不会抛太频繁。现在小A想问您,在有些种可能的状态下,他可以胜过小B呢?由于
答案恐怕太大,所以您只需要输出答案在十进制表示下的结尾k位即可。

用户注册效用对于一个APP的严重性毋庸置疑,可是注册成效又是公认的在计划中坑最多的效劳,可以统筹好注册效率是一个突出产品主任的功底。那么,在统筹注册功效过程中,你有没有纠结于这么些题材啊:

solution

正解:扩充卢卡斯(Lucas)
因为 \(a-b\)
很小,考虑怎么把架子变成和 \(a-b\)
有关.
考虑 \(a=b\)
的气象,考虑结果只有胜负和平局二种,而且输赢是对称的,所以减去平局就是答案,所以答案为
\((2^{a+b}-C(2a,a))/2\).
\(a>b\)
时,同样存在对称性,对于正着会输,反过来就拿到意况,就是 \(2^{a+b}/2\) 种
对于正着反着都赢的事态还未曾算进去:

\[\sum_{i=1}^{b}\sum_{j=1}^{a-b-1}C_{b}^{i}*C_{a}^{i+j}\]
\[\sum_{i=1}^{b}\sum_{j=1}^{a-b-1}C_{b}^{b-i}*C_{a}^{i+j}\]
\[\sum_{j=1}^{a-b-1}C_{a+b}^{b+j}\]
\[\sum_{j=b+1}^{a-1}C_{a+b}^{j}\]
对此除2,依据对称性,只算一半即可,注意偶数境况,存在一项需要手动除2,算2时在因子中减去,算5时径直乘逆元即可

#include <algorithm>
#include <iostream>
#include <cstdlib>
#include <cstring>
#include <cstdio>
#include <cmath>
#define RG register
#define il inline
#define iter iterator
#define Max(a,b) ((a)>(b)?(a):(b))
#define Min(a,b) ((a)<(b)?(a):(b))
using namespace std;
typedef long long ll;
const int N=2500005;
ll qm(ll x,ll k,ll MO){
    ll sum=1;
    while(k){
        if(k&1)sum*=x,sum%=MO;
        x*=x;x%=MO;k>>=1;
    }
    return sum;
}
ll v[2][N],mod,K;
void priwork(){
    int lim=qm(2,9,N);
    v[0][0]=v[1][0]=1;
    for(RG int i=1;i<=lim;i++){
        v[0][i]=v[0][i-1]*((i&1)?i:1);
        v[0][i]%=lim;
    }
    lim=qm(5,9,N);
    for(RG int i=1;i<=lim;i++){
        v[1][i]=v[1][i-1]*((i%5)?i:1);
        v[1][i]%=lim;
    }
}
inline void exgcd(ll a,ll b,ll &x,ll &y){
    if(!b)x=1,y=0;
    else exgcd(b,a%b,y,x),y-=a/b*x;
}
inline ll ni(ll a,ll b){
    ll x,y;
    exgcd(a,b,x,y);
    x%=b;if(x<0)x+=b;
    return x;
}

inline ll Fac(ll n,ll p,ll pr){
    if(n==0)return 1;
    ll re=v[p!=2][pr]%pr;
    re=qm(re,n/pr,pr);
   ll r=n%pr;
    re=re*v[p!=2][r]%pr;
    return re*Fac(n/p,p,pr)%pr;
}

inline ll C(ll n,ll m,ll p,ll pr,bool t){
    if(n<m)return 0;
    ll c=0;
    for(RG ll i=n;i;i/=p)c+=(i/p);
    for(RG ll i=m;i;i/=p)c-=(i/p);
    for(RG ll i=n-m;i;i/=p)c-=(i/p);
    if(t && p==2)c--;
    if(c>=K)return 0;
    ll x=Fac(n,p,pr),y=Fac(m,p,pr),z=Fac(n-m,p,pr);
    ll re=x*ni(y,pr)%pr*ni(z,pr)%pr*qm(p,c,pr)%pr;
    if(t && p==5)re=re*ni(2,pr)%pr;
    return (mod/pr)*ni(mod/pr,pr)%mod*re%mod;
}

inline ll lucas(ll n,ll m,ll k,bool t){
    ll MOD=qm(2,k,N),re=0;
    re=(re+C(n,m,2,MOD,t))%mod;
    MOD=qm(5,k,N);
    re=(re+C(n,m,5,MOD,t))%mod;
    return re;
}
ll work(ll n,ll m,ll k)
{
    ll ans=0;mod=qm(10,k,1e9+5);
    if(n==m)
         return ((qm(2,n+m-1,mod)-lucas(n+m,n,k,1))%mod+mod)%mod;
    for(ll i=(n+m)/2+1;i<n;i++){
        ans+=lucas(n+m,i,k,0);
        ans%=mod;
    }
    if((n+m)%2==0)ans=(ans+lucas(n+m,(n+m)/2,k,1)%mod+mod)%mod;
   return (qm(2,n+m-1,mod)+ans)%mod;
}
inline void Print(ll x,ll c){
    if(c==1)printf("%lld\n",x);if(c==2)printf("%02lld\n",x);
    if(c==3)printf("%03lld\n",x);if(c==4)printf("%04lld\n",x);
    if(c==5)printf("%05lld\n",x);if(c==6)printf("%06lld\n",x);
    if(c==7)printf("%07lld\n",x);if(c==8)printf("%08lld\n",x);
    if(c==9)printf("%09lld\n",x);
}
int main()
{
    priwork();
    ll a,b,c,d;
    while(~scanf("%lld%lld%lld",&a,&b,&c)){
        K=c;d=work(a,b,c);
        Print(d,c);
    }
    return 0;
}

邮箱注册、手机号注册、第三方账户注册,这么多情势应该采取哪一类?

是理所应超越让用户注册依然先让用户使用?先让用户拔取以来,应该在什么的时机注册?

什么样的注册流程用户体验最好?

有些细节问题:要不要加图片验证码?要不要让用户手动勾拔取户协议?要不要让用户安装头像?…

这一次大家来好好捋一捋注册登录设计过程中的境遇的这个问题啊。

注册登录功能的市值

首先我们来分析注册、登录效用的市值在何地。换个角度说,为该产品设计注册登录功用的目标何在?对于每个产品以来,只有把握好产品的筹划目的,才能找到适合该产品的规划思路。

咱俩从多少个范畴来分析:

用户规模:

①用户需要在成品中得到一个单独的ID,以突显其个性化的存在。

②用户需要产品为其记录使用进度、状态、收藏的始末。

③用户期待拿到任何用户的诚实音讯或更详实的信息。

④用户期待产品通过对协调更详实的了然提供更好的劳务。比如丈母娘吗。

职能范围:

①便于跨设备同步数据,也便宜在平等设备中切换不同的账户并保存账户在此之前的情事。

②有社交效率的出品必须登记账号以编制自己的UGC的始末,同时有利于另外用户辨识。

③有交易功效的出品,为个人账户记录订单等贸易音讯,同时增强交易的安全性。

④有应用内付费、VIP会员增值效益的出品,注册登录可以保证用户权益。

工作范围:

①亟需采集对于着力工作特别关键的用户音信,比如手机号、真实姓名等信息。

②挂号登录后便于采访推进运营的数码,以指导产品运营方向。

③用户激励:通过注册拿到手机号、邮箱账户后,一些成品通过给用户发短信或打折券(送打折券、活动推介)吸引用户,进步活跃度。

④消费转向:某些产品取得手机号后,会利用电话营销的方法向客户推荐其付费服务。比如51Talk。

综上,在计划效能在此之前,产品经营应该弄了解你的出品目标属于上述哪些,注册账户功能的显要如何,哪些基本职能与其相关联。

登记登录情势的归类

在甄选注册登录情势此前,先总括一下注册登录设计时要考虑的元素:

①普遍性:这种注册格局是否绝大部分用户群体都知足注册条件?是否有诀窍?

②便捷性:注册流程是否有利于,易明白,易操作,易记念?

③安全性:这种注册情势是否留存安全性问题?

据悉上述评价因素,针对三种不同的注册登录模式展开下相比:

下边分别分析一下每种注册格局:

邮箱注册:

对峙于手机号注册,邮箱注册的好处在于邮箱地址可以永远留存,不会有部手机换号造成的这种苦恼。不过其症结也相比较多:

率先,对于国内用户来说,邮箱的利用频率没有老外那么高,邮箱的首要远小于QQ、微信、手机,很多用户没有个人邮箱,他们也不会为了注册你的账户去申请个信箱,所以邮箱注册的急需相对来说较弱。

附带,在活动端应用邮箱注册的心得也较差,因为证实邮箱的话需要跳出APP去接受邮件,无论是登录邮件客户端依旧打开浏览器进入邮箱网页,这一个操作都加强了流程的复杂度,降低了用户体验。

这就是说,邮箱注册是否还有存在的市值?缘何还有一部分行使保留了邮箱注册效能(或只提供了邮箱注册效率)呢?个人分析有四点原因:

① APP的用户群体不只国内用户,考虑到外国人的利用习惯,保留了邮箱注册。

② 一些商务类的APP,用户群体锁定为职场人物,那多少人是有邮箱的行使习惯的。

③ 一些学习类的APP,考虑到学生群体换号的可能性相比较大(或出境)。

④ 考虑到部分不愿意表露自己手机号,不情愿用手机号注册的用户群体。

邮箱注册如今有5种设计逻辑:

比较这5种方式:

艺术①的效用最高,不过并未邮箱验证的话保证持续账户的安全性,若邮箱录入错误则无从找回密码。其余这种措施容易被登记无效账户或恶意注册邮箱,浪费服务器资源。

办法②和③都是快捷注册成功,之后再让用户通过邮箱验证的法子注明邮箱的可行。那种方法的裨益是既保证了注册音信的卓有效用和安全性,也不会稳中有降太多的用户体验。其中措施③是在APP中完成邮箱的证实,那样可以制止模式②中用户注册后忘记去印证的问题。

方法④和⑤的验证码(或链接)需要在注册流程中胁迫输入,这种办法会阻断用户的操作流程,有在注册过程中损失用户的可能。假诺邮箱消息对业务逻辑及其关键的话,可以参考这种模式。

即使邮箱信息有一定首要性的话,提出采纳第两种方法,以非死不可为例:先挂号,后透过发送到邮箱的验证码举行求证,在登记后的首页中,会有表达邮箱的指示。

假诺设想到降落开发成本,或邮箱消息没那么重大的话,可以第两种形式。

手机号注册:

手机号注册是时下主流的挂号模式。其特性是福利回忆,短信验证码方便快捷,操作流程体验相比好。基于智能手机的推广,马自达用户在操作办法上向来不其他阻碍。另外,这种方法仍是可以间接拿到用户手机号这多少个紧要信息,便于一些事情的开展。

手机号注册的逻辑相当简单,就是录动手机号码后,发起短信验证的乞请,当手机接收相应的短信验证码后,在APP中输入验证码,完成登记。

遵照这多少个逻辑基础,不同的APP会有两样的规划细节,比如一些APP将有所操作放入一个页面中,比如部分APP会分成:录动手机号->短信验证->设置密码两个页面来形成。也有一些一贯设计成接纳手机号和短信验证码登录的“短信急迅登录”,省去了设置密码的环节,加快了登记的速度。由于逻辑基本相同,那一个措施实际流程上距离不是很大。

除此以外还有三种不常用的手机号注册格局,用来在吸纳不到短信的情事下准备。与短信验证的区别重假若申明的过程不同:

① 主动表明:用户向客服号码发送验证短信注册。

② 免费热线:拨打电话活动验证码注册。

③ 语音表明:客服拨打用户电话告诉验证码。

最后,补充一个功用更高的登录注册模式。即将登录和注册功用集成到一个页面相同的控件中。操作方法是:当用户输动手机号后,移出主旨时系统判断该手机号是否业已在数据库中举办了注册。假使已经注册,则让用户继续输入密码;假若未注册,则系统界面登时变化成注册界面,在下方参预验证码输入框,以便用户完成登记。

其三方账户登录:

其三方账户登录,国内广大的有微信、网易、QQ五个社交平台的授权登录,外国普遍的还有Facebook、Twitter、谷歌。上面分析一下行使第三方账户登录的优缺点:

可取1:为用户节省注册时间,简单点击两下就足以一直登陆。体验最佳。(不包括乐乎证实总出错的题材)

优点2:利用第三方平台注册过的用户,都是经过手机或邮箱验证过的用户,安全可靠。同时引入第三方账户的措施也将账户安全性的题目抛给了第三方平台。

可取3:利用第三方账户登录,可以在原则允许下得到第三方平台的音讯,比如好友音信、基础资料等新闻。

缺陷:只利用第三方账户登录的话,不能得到任何有价值的用户注册新闻,同时也构建不成团结的用户系列。这是第三方账户登录的最大题目。

那么,何以利用好第三方登录的同时,也能逐渐构建起自己的用户体系呢?相似的做法是在第三方账户登录后,立刻弹出“绑定手机”或“完善音讯”的页面,这样的做法会给用户带来很差的经验,用户使用第三方账户登录的原意就是跳过注册的流程快捷登录,但报到后发现还要举办跟注册相同的短信验证等操作,会倍感被玩了相同。所以,设计时应尽量避免这种情景的爆发。

进一步客观的解决办法是:①在绑定手机画面中进入“Skip”按钮,让用户自行选取是否录入。②不在第三方账户登录后即刻呈现绑定手机画面,而是在行使一些必要的效率时弹出绑定画面。

挂号登录情势的规划思路

如上剖析了两种不同的挂号登录情势,那么在产品设计过程中,怎么样规划注册登录的流程,咋样抉择注册登录的方法吧?

鉴于不同出品所处的等级不同、产品目的不同、人群定位不同,所以想要得出一个标准答案是不切实际的。下边给出一个完好无缺的分析思路:

第一,分析产品让用户注册登录的必要性。分析有没有必要为APP设计注册效能?若果用户注册登录对于用户、产品功效、商业形式本身带不来任何价值的话,就没必要设计这样的法力。比如一些实用工具类的制品:总计器、手电筒、天气预报、安卓清理大师、语音帮手等等。

说不上,分析产品让用户注册登录的目标是哪些?也就是以此功能为本产品带来什么样的价值,从而得出本条APP应该先挂号后使用或者先使用后注册的判断。可以从用户、功效、业务两个规模分析这一个问题。注册登录效率对于这多少个范畴的市值第一小节已经说过,但不同的产品的需求是不雷同的。针对本产品,每个层面的要求都急需认真的拓展思考:


用户需求:从用户角度,分析用户期待注册产品的急功近利程度。用户率先次安装使用一个APP时,可以分成二种不同的思维:

·
用户有明确心愿使用产品。一种境况是成品效率对于用户来说非常有价值,用户愿意花费时间注册使用,比如说有的手游、一些有美人主播的直播类软件。另一种情况是成品效果新奇特用户很像试试,比如FaceU,当女性用户观察了情人圈里出现了风趣新奇的FaceU靓照时,自己去体会的意思很醒目。用户有显然心愿使用的制品,完全可以先登记再让用户去采取。

·
用户期待先用一用看看,好用了再登记。这就跟体验式消费、先尝后买的笔触是相同的。由于多数用户率先次使用一定是抱着试试看看的姿态来的,为了给用户留下最好的第一映像,先采取再登记的流程是必不可少的。目前大部分的制品都是提供那样的主意,固然你的APP不可能让用户有肯定的运用愿望,最好的抉择是先让用户去采纳,用好了再登记。

·
用户觉得没必要注册,但产品的效益偶尔会用到。一些应用频度较低的APP,比如铃声、壁纸类软件,以及部分工具+社交类的软件,对于用户来说注册效用对用户带来缕缕任何价值,
这类APP提议利用先利用后注册的章程。


效能要求:从效果角度想想,一种状态是产品的核心成效对用户体系倚重程度相当大时,可以先注册再采用。比如QQ、微信、陌陌这样的交际软件,不记名无法正常使用效益。另一种情况是产品某些职能需要用户登录,但对此外效能没影响时,可以动用到该效用时再登录。比如电商APP可以先浏览,在插足购物车或下单时再登录。


业务要求:从事情角度来判定,注册信息若是对产品基本工作卓殊首要的话,能够考虑先挂号的格局,或者常用的做法是进入APP的首先屏是注册页面,但在角落里留下“游客入口”的按钮。当然,假使只是为着拿走用户的手机号等音信,也不必然非要通过挂号这一种途径。能够在产品功用页面中带领用户录入音讯或注册。比如驾考宝典的“帮你选车”的小测试功能,再比如设计君的“咨询规划师”效用。

末尾,分析各类注册登录需求的光景是什么的,依照气象的剖析解决什么样得出最契合本APP的挂号登录形式的题目。依然从用户、效用、业务三个层面思考:


功效需求:从效率角度,对注册登录有需要的机能要的是一个创制的账户体系,至于采取这种注册手段其实不重要。所以可以忽略成效需求对登记登录格局选取的熏陶。


用户要求:对于用户来说,三种注册登录手段的优缺点都很显然,不同的用户的性格特点、生活习惯会影响其采用:比如有些用户讨厌泄露手机号、有的用户没有个人邮箱、有的用户并未设置天涯论坛等等。其余,相同用户在不同的情状下也会有例外的取舍:比如在挤公交地铁时使用、在用餐时利用、在看电视机剧时利用、闲得无聊时利用、朋友在身旁推荐时采纳等等。以这种多样化场景需求来设想,最合理的做法应该是为用户提供多种注册登录模式,最好是手机号、邮箱、第三方登录都有,让用户自己去选拔拔取哪一类。

尤为分析,假使能锁定APP的目的用户群体,能够细化出出色其性状的用户场景,可以遵照其用户特点添加或缩短注册登录情势。比如我的APP不考虑海外用户群体,用户基本也从没利用邮箱的习惯,那么就足以考虑不选用邮箱注册的法子。比如自己的用户大多数是硕士群体,会时不时换手机号,或者部分还有出国的也许,那么邮箱注册就是必需的。


业务需要:分析具体事务需求的场景会得到不同的选料。对于一些业务格局以来用户的手机号消息分外关键,会设想只保留手机挂号一种办法不给用户更多的选拔。有的产品考虑到开发成本和日程进度的因素,会选取最常用的手机号注册模式。对于一些成品以来手机号不是少不了的信息,可以挑选直接运用第三方账户登录。

按照以上分析思路,大家可以试着思想一下这个问题:

①海峡人才网为啥一贯不邮箱注册?为啥主打QQ登录?

②简书为啥进入了“豆瓣”第三方账户登录?

③记念笔记为啥只有邮箱注册?

登记登录效率的筹划细节

规定了设计思路之后,大家来看看设计登录注册效率中,在细节上要考虑怎么点。以WPS客户端为例,我们解析一下记名注册效率的一切页面流程。其中,邮件验证成功、邮件重置密码、邮件重置密码成功多少个页面为运用邮件客户端打开的Web端页面。整个工艺流程逻辑清晰,引导流程的按钮优异分明出色,需要用户配合的操作皆以文字形式展开指示,用户使用起来没有阻力。

在工艺流程设计中需要专注的底细

·
注意页面跳转后是不是合宜有回退按钮,以及点击安卓的back键应该退回到哪些页面。不应当退回到已经交给完数据消息的页面。

· 重置密码成功后,一般应有回到登录页,让用户输入新密码以便加深记念。

·
注册成功后,一般的话会直接登录成功进去APP首页。但部分金融类对账户安全度要求较高的APP会在注册成功后再次来到登录页,让用户重新输入两回密码,以深化记念。

·
在好几可能会发生万分的点(比如提交数据时服务器相当、邮件或短信未发送、响应超时等),一定搞好准备,一旦爆发分外给用户合适的提醒。

·
考虑到是否会设有短信验证码,或表达邮件收不到的动静,这种气象能不可以提供备选方案。

效能设计时要注意的细节

①用户体验方面

·
将邮箱和手机号输入框整合成一个,节省了空中提高了赏心悦目性,还裁减了用户的操作步骤。

·
用户名密码这个必填项未输入时,登录按钮为不可用状态,防止误操作带来的分神。

·
输入框中显示提醒消息的方法进一步释放了镜头空间,让整个画面更是简洁。不过注意输入框和提示文字的灰度要把握好,太浅了灰难以察看。

·
画面中挑大梁流程按钮优秀体现,其余按钮最小化彰显,依照重点程度可以将颜色加以区别。

· 输入框的拿走大旨时优异显示,以便在六个输入框时辨别主旨所处的职务。

·
错误指示一向展现在镜头中,不以弹出对话框的花样或toast的花样落实。弹出对话框体验差,toast呈现时间过短的话用户可能没看清。

·
画面中的输入框、按钮等要害控件尽可能在弹出软键盘时都展现在屏幕上半局部,以便用户切换、确认等操作。

·
注册/登录败北的状态,指示音信应尽量详尽,是账户名出错如故密码出错,或者是手机号已经被登记过了,越详细越好。

· 输入邮箱地址时,提议弹出自动补全功能,自动进入常见的信箱后缀。

·
发送验证邮件后,应该给用户详尽的辨证和操作提醒,也足以进入一个按钮跳转到相应的邮箱地址。

②效用逻辑方面

·
发送短信前可以弹出对话框提醒确认一出手机号,这种做法得以让用户自动确认一出手机号是不是输入正确,节省了用户发错一条短信的成本。当然这种做法用户体验稍差。

·
注册页面考虑是否有必不可少加入服务条款链接。个人认为没有必要同时插手一个单选框让用户去采取,因为点击注册按钮就表示了允许服务条款。

·
为防止频繁点击发送多次验证码,点击一次发送验证码按钮后会倒计时復苏功能,一般为60秒。

③安全性方面

· 密码输入框参预突显/隐藏按钮,默认为明文显示状态。防止用户输入错误。

·
一般景观下不需要规划“确认密码”输入框,考虑到移动装备空间有限、操作困难。但一些对密码安全要求从严的接纳如故会统筹“确认密码”功用。

· 密码输入错误过多时,考虑要不要加盟验证码机制,以防止恶意破解密码。

·
短信验证环节,连续验证次数超过5次时,考虑加盟验证码机制,以担保安全性,同时制止无谓的损失。

结论

哪些采取注册登录的不二法门:

需要综合目标用户的利用习惯和产品业务需要两上边考虑。对于用户来说最合理的法门是提供多种可选的挂号形式,给用户多样化的挑三拣四。但考虑到工作需要和开发成本等要素,按照作业需要和对象用户习惯可以筛选最契合的登记形式。

怎么着抉择注册登录的火候:

除以下三种情况,提议先让用户选拔再登记。


软件效用范围必须先注册的,比如QQ、微信等社交软件,再比如咕咚、黑莓运动这样的软件。


用户有举世瞩目使用意愿使用的出品,比如口碑相当高的、阶段性的爆品、能让用户占到便宜的。

③ 某一定业务原因需要事先注册的。

挂号登录效能设计需注意的细节:

在担保流程设计总体的前提下,保证用户体验、功效逻辑、安全性尽可能设计全面。


末段,欢迎关注自己的微信公众号:MobileGuideline

解读移动设计规范,分析功用设计逻辑,整理产品设计思路。不标题党、不扯故事、专心研讨产品设计。

发表评论

电子邮件地址不会被公开。 必填项已用*标注