热门标签 | 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



推荐阅读
  • JSOI2010 蔬菜庆典:树结构中的无限大权值问题
    本文探讨了 JSOI2010 的蔬菜庆典问题,主要关注如何处理非根非叶子节点的无限大权值情况。通过分析根节点及其子树的特性,提出了有效的解决方案,并详细解释了算法的实现过程。 ... [详细]
  • 丽江客栈选择问题
    本文介绍了一道经典的算法题,题目涉及在丽江河边的n家特色客栈中选择住宿方案。两位游客希望住在色调相同的两家客栈,并在晚上选择一家最低消费不超过p元的咖啡店小聚。我们将详细探讨如何计算满足条件的住宿方案总数。 ... [详细]
  • 本文将深入探讨如何在不依赖第三方库的情况下,使用 React 处理表单输入和验证。我们将介绍一种高效且灵活的方法,涵盖表单提交、输入验证及错误处理等关键功能。 ... [详细]
  • 开发笔记:2020 BJDCTF Re encode
    开发笔记:2020 BJDCTF Re encode ... [详细]
  • 在现代Web应用中,当用户滚动到页面底部时,自动加载更多内容的功能变得越来越普遍。这种无刷新加载技术不仅提升了用户体验,还优化了页面性能。本文将探讨如何实现这一功能,并介绍一些实际应用案例。 ... [详细]
  • 本文探讨了在使用Selenium进行自动化测试时,由于webdriver对象实例化位置不同而导致浏览器闪退的问题,并提供了详细的代码示例和解决方案。 ... [详细]
  • 本文探讨了在C++中如何有效地清空输入缓冲区,确保程序只处理最近的输入并丢弃多余的输入。我们将介绍一种不阻塞的方法,并提供一个具体的实现方案。 ... [详细]
  • 在项目部署后,Node.js 进程可能会遇到不可预见的错误并崩溃。为了及时通知开发人员进行问题排查,我们可以利用 nodemailer 插件来发送邮件提醒。本文将详细介绍如何配置和使用 nodemailer 实现这一功能。 ... [详细]
  • Windows 7 64位系统下Redis的安装与PHP Redis扩展配置
    本文详细介绍了在Windows 7 64位操作系统中安装Redis以及配置PHP Redis扩展的方法,包括下载、安装和基本使用步骤。适合对Redis和PHP集成感兴趣的开发人员参考。 ... [详细]
  • 深入解析Java枚举及其高级特性
    本文详细介绍了Java枚举的概念、语法、使用规则和应用场景,并探讨了其在实际编程中的高级应用。所有相关内容已收录于GitHub仓库[JavaLearningmanual](https://github.com/Ziphtracks/JavaLearningmanual),欢迎Star并持续关注。 ... [详细]
  • 作为一名 Ember.js 新手,了解如何在路由和模型中正确加载 JSON 数据是至关重要的。本文将探讨两者之间的差异,并提供实用的建议。 ... [详细]
  • 编程挑战:2019 Nitacm 校赛 D 题 - 雷顿女士与分队(高级版)
    本文深入解析了2019年Nitacm校赛D题——雷顿女士与分队(高级版),详细介绍了问题背景、解题思路及优化方案。 ... [详细]
  • 本文详细介绍了如何在 Objective-C 中使用 @public 和 @protected 修饰符来控制类成员的访问权限。同时,探讨了点语法和箭头操作符的区别,以及属性声明和实现的自动生成。 ... [详细]
  • 树链问题的优化解法:深度优先搜索与质因数分解
    本文介绍了一种通过深度优先搜索(DFS)和质因数分解来解决最长树链问题的方法。我们通过枚举树链上的最大公约数(GCD),将所有节点按其质因子分类,并计算每个类别的最长链,最终求得全局最长链。 ... [详细]
  • JavaScript 基础语法指南
    本文详细介绍了 JavaScript 的基础语法,包括变量、数据类型、运算符、语句和函数等内容,旨在为初学者提供全面的入门指导。 ... [详细]
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社区 版权所有