题解 | #小红的葫芦#

小红的葫芦

https://ac.nowcoder.com/acm/contest/84851/A

内测的时候感觉ED稍微简单一点

这个D出的挺好的

D 萌萌的好数

这题因为n的范围是1e12,直接暴力会超时,所以需要优化复杂度

二分一下

再容斥一下

有一点数学

判断这个数是第几个好数就把不是好数的数去掉,就是减去

[能被3整除的数的个数]——>x/3

再加上

[个位是3的个数]——>x/10+(x%10>=3)

如果个位大于等于3 就多一个 [0,x/10] alt

再减去

[即是3的倍数而且个位是3的数]——>((x/3)/10+((x/3)%10>=1))

那又要是3的倍数而且个位是3的个数

可以考虑 多少乘3的个位是3

就是枚举[1,x/3]中个位是1的有多少个

就再用上面求各位是3的数目的式子求一下就可以了

alt

using namespace std;
#define ll long long int
const int N=3e5+10;
const int inf = 0x3f3f3f3f;
bool ck(ll x,ll n){
    x-=(x/3+x/10+(x%10>=3)-((x/3)/10+((x/3)%10>=1)));
    if(n<=x)return 1;
    else return 0;
}
int main()
{
    ios::sync_with_stdio(false);
    cin.tie(0);
    int t;
    cin>>t;
    while(t--){
        ll n;
        cin>>n;
        ll l=1,r=1e18;
        while(l<r){
            ll mid=(l+r)>>1;
            if(ck(mid,n)){
                r=mid;
            }
            else l=mid+1;
        }
        cout<<r<<'\n';
    }
    return 0;
}

E 茜茜的计算器

考虑对称性

  1. 1380上下对称
  2. 2 5 0 8左右对称

给出n相当于有n个位置填数进去

如果全是1 3 8 0 就是

如果存在2 5 那么就要考虑对称了

如果n为偶数 就是,

但是存在没有2 5 的情况就要减去 0 8 的情况

0 和 8全排列 alt

如果n为奇数 那么正中间的那个必须是0 8 所以多乘一个2就可以了

alt

算的时候就用快速幂搞一下就好了

然后减的时候要+mod再取模

// 1380
// 25
#include <bits/stdc++.h>
using namespace std;
#define ll long long int
const int N=3e5+10;
const int inf = 0x3f3f3f3f;
const ll mod = 1e9+7;
ll f(ll a,ll b)
{
    ll ans=1;
//     a %= mod;
    while(b>0)
    {
        if(b&1) ans=ans*a%mod;
        a=a*a%mod;
        b=b>>1;
    }
    ans=ans%mod;
    return ans;
}
int main()
{
    ios::sync_with_stdio(false);
    cin.tie(0);
    int n;
    cin>>n;
    if(n%2){
        cout<<(f(4,n)+2*((f(4,n/2)-f(2,n/2)+mod)%mod)%mod)%mod<<'\n';
    }
    else{
        cout<<(f(4,n)+(f(4,n/2)-f(2,n/2)+mod)%mod)%mod<<'\n';
    }
//     cout<<f(4,n)<<'\n';
    return 0;
}

感谢观看

全部评论
orz
2 回复 分享
发布于 2024-06-16 22:05 湖北
D题太强啦,别人都是找规律,答主这个二分想的太好啦
1 回复 分享
发布于 2024-06-18 21:50 辽宁
tql
1 回复 分享
发布于 2024-06-16 22:13 湖北
点赞 回复 分享
发布于 2024-11-23 22:54 湖北

相关推荐

不愿透露姓名的神秘牛友
07-02 17:28
25届每天都在焦虑找工作的事情0offer情绪一直很低落硬撑着面了一个岗位岗位有应酬的成分面试的时候hr给我出各种场景题问的问题比较犀利&nbsp;有点压力面的感觉感觉有点回答不上来本来就压抑的情绪瞬间爆发了呢一瞬间特别想哭觉得自己特别没用没绷住掉眼泪了事后想想觉得自己挺有病的&nbsp;真的破大防了
喜欢唱跳rap小刺猬...:我觉得没关系吧,之前有一次面试leader给我压力面,我顶住了压力,结果入职的时候发现组里氛围很差,果断跑路。其实从面试就能大概看出组的情况,面试体验好的组倒是不一定好,但是面试体验不好的组。。。就很难说
点赞 评论 收藏
分享
06-12 17:46
门头沟学院 Java
运营你豪哥:来说重点: ​1.项目前置,时间倒序。​​ 2.​项目描述强化结果与量化效果(STAR原则里的R)。​​ ​3.个人技能精炼,明确掌握程度,突出核心。​​ ​4.增加强有力开头的个人总结部分。​​ 5.​优化教育背景(成绩排名)、合并奖项与活动。​​
听劝,我这个简历该怎么改...
点赞 评论 收藏
分享
05-12 17:00
门头沟学院 Java
king122:你的项目描述至少要分点呀,要实习的话,你的描述可以使用什么技术,实现了什么难点,达成了哪些数字指标,这个数字指标尽量是真实的,这样面试应该会多很多,就这样自己包装一下,包装不好可以找我,我有几个大厂最近做过的实习项目也可以包装一下
点赞 评论 收藏
分享
评论
6
收藏
分享

创作者周榜

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