热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

【2019.8.30】Za

Za2019.8.30SDOI2011计算器[BZOJ2242][luoguP2485]1、给定y、z、p,计算y^zmodp的值;2、给定y、z、p&

Za 2019.8.30

SDOI2011 计算器

[BZOJ2242] [luoguP2485]

1、给定y、z、p,计算y^z mod p 的值;

2、给定y、z、p,计算满足xy ≡z(mod p)的最小非负整数x;

3、给定y、z、p,计算满足y^x ≡z(mod p)的最小非负整数x。

第一个要求直接快速幂

第二个要求因为保证P为质数 直接费马小定理求逆元然后*z

第三个就是BSGS模板

==打的时候1mol错 要注意该加括号的就加括号 不要图简便啥的不加 然后就long long

#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;
#define ll long long
#define Abs(x) ((x)<0?-(x):(x))
#define Max(x,y) ((x)>(y)?(x):(y))
#define Min(x,y) ((x)<(y)?(x):(y))
const int N&#61;10000&#43;5,M&#61;20000&#43;5,INF&#61;1e9&#43;7,inf&#61;0x3f3f3f3f;
int y,z,p;
template void rd(t &x){x&#61;0;int w&#61;0;char ch&#61;0;while(!isdigit(ch)) w|&#61;ch&#61;&#61;&#39;-&#39;,ch&#61;getchar();while(isdigit(ch)) x&#61;(x<<1)&#43;(x<<3)&#43;(ch^48),ch&#61;getchar();x&#61;w?-x:x;
}int qpow(int a,int b){int res&#61;1;while(b){if(b&1) res&#61;(ll)a*res%p;a&#61;(ll)a*a%p,b>>&#61;1;}return res;
}maphash;
int BSGS(){hash.clear();y%&#61;p,z%&#61;p;if(!y) return -1;int t&#61;(int)sqrt(p)&#43;1;for(int j&#61;0,val;j&#61;0&&i*t-j>&#61;0) return i*t-j;}return -1;
}void work2(){if(!(y%p)&&z%p) puts("Orz, I cannot find x!");else printf("%lld\n",(ll)qpow(y,p-2)*z%p);
}
void work3(){int ans&#61;BSGS();if(ans&#61;&#61;-1) puts("Orz, I cannot find x!");else printf("%d\n",ans);
}int main(){freopen("in.txt","r",stdin);int T,K;rd(T),rd(K); while(T--){rd(y),rd(z),rd(p);if(K&#61;&#61;1) printf("%d\n",(qpow(y,z))%p);else if(K&#61;&#61;2) work2();else work3();}return 0;
}

luogu4884 多少个1&#xff1f;

给定整数\(K\)和质数\(m\)&#xff0c;求最小的正整数\(N\)&#xff0c;使得 \(1111⋯1(N个1)\equiv K(mod\;m)\)

说人话&#xff1a;就是\(111...1111\; mod\;m &#61;K\)

\(1111⋯1(N个1)\)乘9得\(9999⋯9(N个9)\)\(&#43;1\)\(10^N\)

即求x使得\(10^x\equiv K*9&#43;1(mod\;m)\)

题解里的玄学快速乘

好像noip啥的不支持_int128 那就先不学了

#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;
#define ll long long
#define Abs(x) ((x)<0?-(x):(x))
#define Max(x,y) ((x)>(y)?(x):(y))
#define Min(x,y) ((x)<(y)?(x):(y))
const int N&#61;10000&#43;5,M&#61;20000&#43;5,INF&#61;1e9&#43;7,inf&#61;0x3f3f3f3f;
ll y,z,p;
template void rd(t &x){x&#61;0;int w&#61;0;char ch&#61;0;while(!isdigit(ch)) w|&#61;ch&#61;&#61;&#39;-&#39;,ch&#61;getchar();while(isdigit(ch)) x&#61;(x<<1)&#43;(x<<3)&#43;(ch^48),ch&#61;getchar();x&#61;w?-x:x;
}ll mul(ll a, ll b){ll L &#61; a * (b >> 25LL) %p* (1LL <<25) %p;ll R &#61; a * (b & ((1LL <<25) - 1)) %p;return (L &#43; R) %p;
}ll qpow(ll a,ll b){ll res&#61;1;while(b){if(b&1) res&#61;mul(a,res)%p;a&#61;mul(a,a)%p,b>>&#61;1;}return res;
}maphash;
ll BSGS(){hash.clear();y%&#61;p,z%&#61;p;int t&#61;sqrt(p)&#43;1;for(int i&#61;0;i&#61;0&&(ll)i*t-j>&#61;0) return (ll)i*t-j;}return -1;
}int main(){freopen("in.txt","r",stdin);rd(z),rd(p);y&#61;10ll,z&#61;(z<<3)&#43;z&#43;1;ll ans&#61;BSGS();printf("%lld",ans);return 0;
}

exbsgs

银河英雄传说

重新打了一遍

带权并查集

#include
#include
#include
#include
#include
using namespace std;
#define Abs(x) ((x)<0?-(x):(x))
const int N&#61;30000&#43;5,M&#61;20000&#43;5,INF&#61;1e9&#43;7,inf&#61;0x3f3f3f3f;
int n,f[N];
template void rd(t &x){x&#61;0;int w&#61;0;char ch&#61;0;while(!isdigit(ch)) w|&#61;ch&#61;&#61;&#39;-&#39;,ch&#61;getchar();while(isdigit(ch)) x&#61;(x<<1)&#43;(x<<3)&#43;(ch^48),ch&#61;getchar();x&#61;w?-x:x;
}int d[N],sz[N];
int find(int x){if(x&#61;&#61;f[x]) return x;int rt&#61;find(f[x]);d[x]&#43;&#61;d[f[x]];return f[x]&#61;rt;
}
void Merge(int x,int y){f[x&#61;find(x)]&#61;y&#61;find(y),d[x]&#61;sz[y],sz[y]&#43;&#61;sz[x];
}int main(){freopen("in.txt","r",stdin);int T,x,y;char opt[5];rd(T);for(int i&#61;1;i<&#61;30000;&#43;&#43;i) f[i]&#61;i,sz[i]&#61;1;while(T--){scanf("%s",opt);rd(x),rd(y);if(opt[0]&#61;&#61;&#39;M&#39;) Merge(x,y);else{if(find(x)!&#61;find(y)) puts("-1");else printf("%d\n",Abs(d[x]-d[y])-1);}}return 0;
}

1930来的先生

卿卿吾愛&#xff0c;見字如晤&#xff1a;
  體無恙否&#xff1f;心安樂否&#xff1f;藝人之工作順利否&#xff1f;
  屈指算來&#xff0c;吾與汝七日未見&#xff0c;人言一日不見&#xff0c;如隔三秋&#xff0c;七日之長&#xff0c;煎熬甚苦。人生苦短如斯&#xff0c;言語小恚&#xff0c;便有這許多煎熬&#xff0c;若他日真作計較&#xff0c;又當何以自處&#xff1f;思來想去&#xff0c;日夜翻覆&#xff0c;更覺會日何短&#xff0c;隔日何長&#xff1f;憂思何繁&#xff0c;歡顏何驟&#xff1f;
  吾心愛汝&#xff0c;願見歡顏&#xff0c;恨吾怨吾&#xff0c;皆吾自取。當日失言&#xff0c;悔之不及。前日電訊致歉&#xff0c;卿定有閱之&#xff0c;閱而不復&#xff0c;非卿之過&#xff0c;是吾書未達意&#xff0c;辭未達情。游目天地&#xff0c;何以悅卿&#xff1f;雖天涯海角&#xff0c;卿所樂之&#xff0c;吾必往之&#xff0c;幽王癡情&#xff0c;敢笑薄之——此等甘辭蜜語&#xff0c;不能訴吾衷情于一二&#xff0c;卿心明澈&#xff0c;願可鑒之。
  論愛侶之屬&#xff0c;愛之尤甚&#xff0c;怨懟尤多&#xff0c;相思酷刑&#xff0c;甚于斧鉞。吾與卿七日未見&#xff0c;此卿卿于吾小懲大誡&#xff0c;吾必銘記於心&#xff0c;定無再犯。昨日歸家途中&#xff0c;見有春梅余香枝頭&#xff0c;衷情難表&#xff0c;癡意難訴&#xff0c;春意兩瓣&#xff0c;托于鴻雁。東君有意&#xff0c;顧惜芳春&#xff0c;卿卿當如東君&#xff0c;顧惜吾心。
  最后一张纸只有两行正楷大字&#xff1a;
  以上那些我知你必定看不懂&#xff0c;只看這最後兩句罷&#xff1a;我在你樓下等你&#xff0c;一起去閱江樓吃龍蝦。

[USACO]道路与航线

[BZOJ2200] [luoguP3008]

咕了&#xff01;

#include
#include
#include
#include
#include
#include
#include
using namespace std;
typedef pairpii;
const int N&#61;25000&#43;5,M&#61;50000&#43;5,INF&#61;1e9&#43;7,inf&#61;0x3f3f3f3f;
int n,r,p,s,in[N];
template void rd(t &x){x&#61;0;int w&#61;0;char ch&#61;0;while(!isdigit(ch)) w|&#61;ch&#61;&#61;&#39;-&#39;,ch&#61;getchar();while(isdigit(ch)) x&#61;(x<<1)&#43;(x<<3)&#43;(ch^48),ch&#61;getchar();x&#61;w?-x:x;
}int hd[N],tt&#61;1;
struct edge{int v,w,nxt;}e[M<<2];
void add(int u,int v,int w){e[&#43;&#43;tt]&#61;(edge){v,w,hd[u]},hd[u]&#61;tt;
}int bl[N],cnt&#61;0;
vectorblo[N];
void dfs(int u){bl[u]&#61;cnt,blo[cnt].push_back(u);for(int i&#61;hd[u],v;i;i&#61;e[i].nxt)if(!bl[v&#61;e[i].v]) dfs(v);
}int dis[N];bool vis[N];
void topsort(){memset(dis,inf,sizeof(dis));memset(vis,0,sizeof(vis));queueQ;dis[s]&#61;0;//,Q.push((bl[s]))for(int i&#61;1;i<&#61;cnt;&#43;&#43;i) if(!in[i]) Q.push(i);priority_queue,greater >q;while(!Q.empty()){int k&#61;Q.front();Q.pop();for(int i&#61;0,x;idis[u]&#43;(w&#61;e[i].w)){dis[v]&#61;dis[u]&#43;w;if(bl[v]&#61;&#61;bl[u]) q.push((make_pair(dis[v],v)));}if(bl[u]!&#61;bl[v]&&!(--in[bl[v]])) Q.push(bl[v]);}}}
}int main(){freopen("in.txt","r",stdin);rd(n),rd(r),rd(p),rd(s);for(int i&#61;1,u,v,w;i<&#61;r;&#43;&#43;i) rd(u),rd(v),rd(w),add(u,v,w),add(v,u,w);for(int i&#61;1;i<&#61;n;&#43;&#43;i) if(!bl[i]) &#43;&#43;cnt,dfs(i);for(int i&#61;1,u,v,w;i<&#61;p;&#43;&#43;i)rd(u),rd(v),rd(w),add(u,v,w),&#43;&#43;in[bl[v]];topsort();for(int i&#61;1;i<&#61;n;&#43;&#43;i)if(dis[i]>&#61;1e9) puts("NO PATH");else printf("%d\n",dis[i]);return 0;
}

USACO cow relays

#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;
#define ll long long
#define Abs(x) ((x)<0?-(x):(x))
#define Max(x,y) ((x)>(y)?(x):(y))
#define Min(x,y) ((x)<(y)?(x):(y))
typedef pairpii;
const int N&#61;1e6&#43;5,M&#61;200&#43;5,INF&#61;1e9&#43;7,inf&#61;0x3f3f3f3f;
int n,m,s,t,id[N];
template void rd(t &x){x&#61;0;int w&#61;0;char ch&#61;0;while(!isdigit(ch)) w|&#61;ch&#61;&#61;&#39;-&#39;,ch&#61;getchar();while(isdigit(ch)) x&#61;(x<<1)&#43;(x<<3)&#43;(ch^48),ch&#61;getchar();x&#61;w?-x:x;
}struct mp{int v[M][M];mp operator *(const mp &x)const{mp c;memset(c.v,inf,sizeof(c.v));for(int k&#61;1;k<&#61;id[0];&#43;&#43;k)for(int i&#61;1;i<&#61;id[0];&#43;&#43;i)for(int j&#61;1;j<&#61;id[0];&#43;&#43;j)c.v[i][j]&#61;Min(c.v[i][j],v[i][k]&#43;x.v[k][j]);return c;};
}a;int main(){
// freopen("in.txt","r",stdin);rd(n),rd(m),rd(s),rd(t);memset(a.v,inf,sizeof(a.v));for(int i&#61;1,u,v,w;i<&#61;m;&#43;&#43;i){rd(w),rd(u),rd(v);if(!id[u]) id[u]&#61;&#43;&#43;id[0];if(!id[v]) id[v]&#61;&#43;&#43;id[0];a.v[id[u]][id[v]]&#61;a.v[id[v]][id[u]]&#61;Min(a.v[id[u]][id[v]],w);}mp res&#61;a;--n;while(n){if(n&1) res&#61;res*a;a&#61;a*a,n>>&#61;1;}printf("%d",res.v[id[s]][id[t]]);return 0;
}

转:https://www.cnblogs.com/lxyyyy/p/11437376.html



推荐阅读
  • 利用Node.js实现PSD文件的高效切图
    本文介绍了如何通过Node.js及其psd2json模块,快速实现PSD文件的自动化切图过程,以适应项目中频繁的界面更新需求。此方法不仅提高了工作效率,还简化了从设计稿到实际应用的转换流程。 ... [详细]
  • 基于SSM框架的在线考试系统:随机组卷功能详解
    本文深入探讨了基于SSM(Spring, Spring MVC, MyBatis)框架构建的在线考试系统中,随机组卷功能的设计与实现方法。 ... [详细]
  • 深入解析 C++ 中的 String 和 Vector
    本文详细介绍了 C++ 编程语言中 String 和 Vector 的使用方法及特性,旨在帮助开发者更好地理解和应用这两个重要的容器。 ... [详细]
  • 本文详细介绍了 Redis 中的主要数据类型,包括 String、Hash、List、Set、ZSet、Geo 和 HyperLogLog,并提供了每种类型的基本操作命令和应用场景。 ... [详细]
  • 本文详细探讨了在Java中如何将图像对象转换为文件和字节数组(Byte[])的技术。虽然网络上存在大量相关资料,但实际操作时仍需注意细节。本文通过使用JMSL 4.0库中的图表对象作为示例,提供了一种实用的方法。 ... [详细]
  • 在1995年,Simon Plouffe 发现了一种特殊的求和方法来表示某些常数。两年后,Bailey 和 Borwein 在他们的论文中发表了这一发现,这种方法被命名为 Bailey-Borwein-Plouffe (BBP) 公式。该问题要求计算圆周率 π 的第 n 个十六进制数字。 ... [详细]
  • Java 中的十进制样式 getZeroDigit()方法,示例 ... [详细]
  • 问题描述现在,不管开发一个多大的系统(至少我现在的部门是这样的),都会带一个日志功能;在实际开发过程中 ... [详细]
  • 洛谷 P4009 汽车加油行驶问题 解析
    探讨了经典算法题目——汽车加油行驶问题,通过网络流和费用流的视角,深入解析了该问题的解决方案。本文将详细阐述如何利用最短路径算法解决这一问题,并提供详细的代码实现。 ... [详细]
  • 理解浏览器历史记录(2)hashchange、pushState
    阅读目录1.hashchange2.pushState本文也是一篇基础文章。继上文之后,本打算去研究pushState,偶然在一些信息中发现了锚点变 ... [详细]
  • 本文详细介绍了如何在 Vue CLI 3.0 和 2.0 中配置 proxy 来解决开发环境下的跨域问题,包括具体的配置项和使用场景。 ... [详细]
  • 本文详细探讨了 Java 中 org.apache.gobblin.metrics.GobblinMetrics 类下的 getName() 方法的使用场景及其代码实现,提供了多个实际应用示例以加深理解。 ... [详细]
  • 在Android中实现黑客帝国风格的数字雨效果
    本文将详细介绍如何在Android平台上利用自定义View实现类似《黑客帝国》中的数字雨效果。通过实例代码,我们将探讨如何设置文字颜色、大小,以及如何控制数字下落的速度和间隔。 ... [详细]
  • 本文详细介绍了在Luat OS中如何实现C与Lua的混合编程,包括在C环境中运行Lua脚本、封装可被Lua调用的C语言库,以及C与Lua之间的数据交互方法。 ... [详细]
  • 二维码的实现与应用
    本文介绍了二维码的基本概念、分类及其优缺点,并详细描述了如何使用Java编程语言结合第三方库(如ZXing和qrcode.jar)来实现二维码的生成与解析。 ... [详细]
author-avatar
漫瀚聆静
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有