Loading [MathJax]/jax/output/CommonHTML/jax.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >2020牛客暑期多校训练营(第十场)

2020牛客暑期多校训练营(第十场)

作者头像
wenzhuan
发布于 2022-08-15 04:42:45
发布于 2022-08-15 04:42:45
27200
代码可运行
举报
运行总次数:0
代码可运行

8.10 只想着G赛后也过了G的牛客10

A-Permutation

题意

给定一个质数 ,求出 个数组成的序列,要求序列满足

思路

如果序列有解,则 然后依序构造,判断 是否有满足条件的解。

G-Math Test

题意

给定数 ,问有多少点对 满足

思路

参考 ==zjut_6== 队伍代码。

由于 ,考虑全部预处理,在每次询问时二分查找答案。

打表可以看出对于满足条件的 也是一组解。所以思路就是每次求出小的解往后迭代。

,即 。故枚举差值 ,得到 ,对于每对这样的 求出符合条件的

坑点

评测机波动可能会造成样例能过提交后内存超限。

代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include<bits/stdc++.h>
#define pf printf
#define sc(x) scanf("%d", &x)
#define scl(x) scanf("%lld", &x)
#define rep(i,s,e) for(int i=s; i<e; ++i)
using namespace std;
typedef long long ll;
typedef pair<ll,ll> pii;
const int maxn = 1e5 + 1;
vector<ll>vv[maxn+5];
vector<pii>rt[maxn+5];
void exgcd(ll a,ll b,ll &x,ll &y){
    if(!b){ x=1; y=0; return; }
    exgcd(b,a%b,y,x); y-=(a/b)*x; return;
}
ll inv(ll a,ll p){
    ll x,y; exgcd(a,p,x,y);
    return (x%p+p)%p;
}
void init(){
    rep(a,1,maxn) rt[a].push_back(pii(1,1));
    // 对于任意a都有1,1满足条件
    rep(d,1,maxn) for(int x=1;1ll*x*d<maxn;++x){
        // 枚举y和x的差值d和x
        if(__gcd(d,x)>1) continue;
        // 差值和x不互质则x和y也不互质
        int y=x+d; ll m=1ll*x*y;
        ll k1=inv(y,x),k2=inv(x,y);
        ll t1=-1ll*y*y%x,t2=-1ll*x*x%y;
        while(t1<0) t1+=x;
        while(t2<0) t2+=y;
        ll a=k1*y%m*t1%m;
        a+=k2*x%m*t2%m; a%=m;
        // crt
        while(a<1ll*x*d) a+=m;
        while(a<maxn){
            rt[a].emplace_back(pii(x,y));
            a+=m; // 加xy不影响取模的结果 前后a是等价的
        }
    }
    rep(a,1,maxn){
        rep(i,0,(int)rt[a].size()){
            ll x=rt[a][i].first,y=rt[a][i].second;
            __int128 t=(__int128)y*y+a; t/=x;
            if(t>1e18) continue; x=y; y=t;
            rt[a].push_back(pii(x,y));
            // 更新 这个打表一下就找到规律了
        } sort(rt[a].begin(),rt[a].end());
        int sz=unique(rt[a].begin(),rt[a].end())-rt[a].begin();
        rep(i,0,sz) vv[a].push_back(rt[a][i].second);
        sort(vv[a].begin(),vv[a].end());
        rt[a].resize(0); rt[a].shrink_to_fit();
    } 
}
int solve(){
    int a; ll n; sc(a); scl(n);
    return pf("%d\n",(int)(upper_bound(vv[a].begin(),vv[a].end(),n)-vv[a].begin()));
}
int main(){ init();
    int _; sc(_); while(_--) solve();
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
2020牛客暑期多校训练营(第一场)
定义数组 B(s_1s_2…s_k) 。对于 B_i 当存在 j 满足 j<is_j=s_i 时有 i-max(j) ,否则为0。给定串 S ,求 S 每个后缀的 B 函数的字典序
wenzhuan
2022/08/15
3140
2020牛客暑期多校训练营(第六场)
给定一个 n*m 大小的矩阵,任意选择行列组成子矩阵,使子矩阵和和最后一列之和的商最大
wenzhuan
2022/08/15
3110
Wannafly Winter Camp 2020-Day3
赛时爆零了 记的是补题qwq 3A. 黑色气球 #include<bits/stdc++.h> #define pf printf #define sc(x) scanf("%d", &x) #define scs(x) scanf("%s", x) #define scl(x) scanf("%lld", &x) #define mst(a,x) memset(a, x, sizeof(a)) #define rep(i,s,e) for(int i=s; i<e; ++i) #define dep(i,
wenzhuan
2022/08/15
2340
2020牛客暑期多校训练营(第八场)
给定一些卡片。一张卡片有 4 个属性,每个属性有 4 种样式,用 1 、2 、3 、 * 表示。 * 可以替换为 1 、2 、3 的任意一个。定义一个卡片集为 3 张每个属性样式全一样或者全不一样的卡片,找出给定卡片的任意卡片集。
wenzhuan
2022/08/15
2610
2020 Multi-University Training Contest 2
给定一个 n 个点的图,每个点有一权值 b ,每次选择 k 个相互连通的点,使其中每个点权值减一,问最少需要多少操作可以使所有的点权值都为 0(每次选择的 k 必须最大)
wenzhuan
2022/08/15
2680
Wannafly Winter Camp 2020-Day7
前一个小时状态极差 属于看什么什么不会 看H没有一点思路 感慨:他们怎么都会啊 手推了一下H前5项的情况 心里大概有了猜想 看了看ac队伍的用时也和想的式子一样 为了保险又手推了6 果然想的是对的 早知道莽了.jpg 但还是因为计算范围错了炸int了wa了一发 我是废物 过了H的生活因为K两个队友都在看 就去看新题了(加上我也不是很想推 开了E 又是手推了前几项 猜想了一个结论 顺利wa 然后考虑到了其他情况 继续推式子 但队友K还没过 遂帮倒忙地看了看K 因为真的懒得推 队友推了好几遍我相信式子没问题!又去看E 发现E在oeis直接有表 换Java写 因为语法不熟和改得太急成功wa*2 队友也把K过了 +10 排名从100开外变成50+ 最终排名60+吧 还行(
wenzhuan
2022/08/15
2060
哈理工2019新生赛解题报告
没啥好写的但毕竟也是ak了 来看压行小天才的表演 A: 会长的烦心事 题目链接 #include<bits/stdc++.h> #define rep(i,s,e) for(int i=s; i<e; ++i) using namespace std; int len[15]; int change(char c){ if(c=='l') return 0; if(c=='e') return 1; if(c=='a') return 2; if(c=='g') return
wenzhuan
2022/08/15
2040
2020牛客暑期多校训练营(第三场)
有鱼的时候抓鱼一定最优,没有鱼的时候先考虑有鱼饵的情况,如果当前鱼饵数小于之后没有鱼的天数,则收集鱼饵,否则就用鱼饵换鱼。这样既没鱼也没鱼饵的时候就可以直接用鱼饵换鱼。
wenzhuan
2022/08/15
2740
2020牛客暑期多校训练营(第二场)
定义函数 f(s,t) 为 s 前缀和 t 后缀的最长相同长度。给定 n 个串,求两两 f 和。
wenzhuan
2022/08/15
3070
2020牛客暑期多校训练营(第九场)
给定 a 、b 、c 、d 、x 、y ,求 \prod \limits^{b} _ {i=a}\prod \limits^{d} _ {j=c}gcd(x^i,y^j) 。
wenzhuan
2022/08/15
3980
2020牛客暑期多校训练营(第四场)
定义函数 f 在 x>1f_c(x)=\max_{i=1…x-1}c*f_c(gcd(i,x)),在 x=1 时 f_c(x)=1,给定 c 和 x,求 f
wenzhuan
2022/08/15
3110
Wannafly Winter Camp 2020-Day5
今天不自闭了 rk31 队里的罚时提供者 非ac的全是我交的( 开场写G 当时范围还是1e16 打了个表 等表的时候去看A( 一看 啊 啥玩意啊 咋写啊 我学不来啊 再一看 k<=3啊 那没事了 然后
wenzhuan
2022/08/15
2570
2020牛客暑期多校训练营(第五场)
给定 n、m、k,问所有长度为 k 且满足 \sum A_i=n、\sum B_i=m 的 A、B 数组的 \prod \min(A_i,B_i) 之和。
wenzhuan
2022/08/15
2850
2020牛客暑期多校训练营(第七场)
只有 n=1 或 n=24 的时候结果是完全平方数,打表出来的。具体证明有个知乎回答?如何证明 1²+2²+…+n² 为平方数的解只有 n=1 或 n=24?
wenzhuan
2022/08/15
2220
2020 Multi-University Training Contest 5
a 、b 、c 为 [1,n] 的随机数,将其分别作为直角三棱锥的三条直角边。设直角顶点为 P ,过 P 的高为 h ,求 \frac{1}{h^2} 的期望值。
wenzhuan
2022/08/15
2410
2020 Multi-University Training Contest 8
给定长度为 n 的数组 a ,对于任意 i 都有 -1\leq a_i\leq 1 。想要将 a 划分做若干块使得每块总和的 sgn 和最大,每块的长度需要满足 l\leq len\leq r 。
wenzhuan
2022/08/15
2410
Codeforces 19C. Deletion of Repeats
题目链接 一开始感觉是求最短不包含重复段的后缀 卡了好久qwq 后来发现forfor就完事了 本来想写sa hash 暴力三种写法的 结果写完暴力发现比sa还快 瞬间索然无味 我写sa干嘛呢 离散化一下然后枚举就行 就当复习sa了555
wenzhuan
2022/08/15
1880
2020 Multi-University Training Contest 9
给定一棵根节点为 1 、顶点数为 n 的树,在树上只能从父节点到达子节点。问加上一条边后最大可达的点对数。
wenzhuan
2022/08/15
2570
2020年第一届辽宁省大学生程序设计竞赛
可以使用一个 p a i r pair pair数组来保存< i n t , s t r i n g int,string int,string>对,排序后按题意模拟即可。注意输出队员姓名的顺序是按照排名从大到小排列,并且要开 3 3 3倍 n n n的空间。
dejavu1zz
2020/11/24
5840
2020年第一届辽宁省大学生程序设计竞赛
ACM 常用小 Trick
//{{{ #include #include <algorithm> #include <iostream> #include <cstring> #include <vector> #include <cstdio> #include <string> #include <cmath> #include <queue> #include <set> #include <map> #include <complex> //}}}//#include <bits/stdc++.h> using namesp
wywwzjj
2023/05/09
2030
相关推荐
2020牛客暑期多校训练营(第一场)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验