T1:

求解线性同余方程组,,然后模数是前n小的素数,因为结果可能很大,所以模bi后输出,bi有m组

n <= 300,m = 100


solution:

直接上中国剩余定理肯定是不行的--模数全部乘起来太大了。。不过每个模数都很小

考虑一个个合并模方程,假设当前合并了前k个,要把第k+1个方程加入

首先,合并了前k个方程,那么结果一定是前k个模数乘积再加上某个数

现在要和第k+1个方程合并,那么每次都得以加上前面k个模数乘积的方式增长

而现在要维护第k+1个方程,因此前面的方程只要维护其模这个方程剩下的东西就行了

不断累加直到得出答案,,然后每次操作都顺便维护一下模m个b的结果就行了

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<queue>
#include<vector>
#include<stack>
#include<algorithm>
using namespace std;const int maxn = 1E4 + 10;
const int N = 303;int n,m,tot,p[maxn],a[N],b[N];
bool not_pri[maxn];int Add(int x,int y,int mo) {return (1LL*x + 1LL*y)%mo;}
int Mul(int x,int y,int mo) {return 1LL*x*y%mo;}struct data{int mp[N],mb[N];data(){memset(mp,0,sizeof(mp)); memset(mb,0,sizeof(mb));}data operator += (const data &B) {for (int i = 0; i <= n; i++) mp[i] = Add(mp[i],B.mp[i],p[i]);for (int i = 1; i <= m; i++) mb[i] = Add(mb[i],B.mb[i],b[i]);}data operator *= (const int &Q) {for (int i = 0; i <= n; i++) mp[i] = Mul(mp[i],Q,p[i]);for (int i = 1; i <= m; i++) mb[i] = Mul(mb[i],Q,b[i]);}data operator = (const int &Q) {for (int i = 0; i <= n; i++) mp[i] = Q%p[i];for (int i = 1; i <= m; i++) mb[i] = Q%b[i];}
}Ans,k;int main()
{#ifdef DMCfreopen("DMC.txt","r",stdin);#elsefreopen("mod.in","r",stdin);freopen("mod.out","w",stdout);#endiffor (int i = 2; i < maxn; i++) {if (!not_pri[i]) p[++tot] = i;for (int j = 1; j <= tot; j++) {int Nex = p[j]*i;if (Nex >= maxn) break;not_pri[Nex] = 1;}}cin >> n >> m;for (int i = 1; i <= n; i++) scanf("%d",&a[i]);for (int i = 1; i <= m; i++) scanf("%d",&b[i]);p[0] = 1; bool zero = 1; k = 1;for (int i = 1; i <= n; i++) {while (Ans.mp[i] != a[i]) Ans += k,zero = 0;k *= p[i];}if (zero) Ans = k;for (int i = 1; i <= m; i++) printf("%d\n",Ans.mb[i]);return 0;
}


T3:

给一张图,是一棵树加上一个环,每次询问三个点,要找到一个点,使得这个点到其他点距离最短


solution:

如果是一棵树,LCA解决

如果多一条边,用它更优的话,一定有一个点用它。。。

枚举用它的那个点,也就是说,尝试强行将这条边加入答案

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<queue>
#include<vector>
#include<stack>
#include<algorithm>
using namespace std;const int maxn = 1E4 + 10;
const int N = 303;int n,m,tot,p[maxn],a[N],b[N];
bool not_pri[maxn];int Add(int x,int y,int mo) {return (1LL*x + 1LL*y)%mo;}
int Mul(int x,int y,int mo) {return 1LL*x*y%mo;}struct data{int mp[N],mb[N];data(){memset(mp,0,sizeof(mp)); memset(mb,0,sizeof(mb));}data operator += (const data &B) {for (int i = 0; i <= n; i++) mp[i] = Add(mp[i],B.mp[i],p[i]);for (int i = 1; i <= m; i++) mb[i] = Add(mb[i],B.mb[i],b[i]);}data operator *= (const int &Q) {for (int i = 0; i <= n; i++) mp[i] = Mul(mp[i],Q,p[i]);for (int i = 1; i <= m; i++) mb[i] = Mul(mb[i],Q,b[i]);}data operator = (const int &Q) {for (int i = 0; i <= n; i++) mp[i] = Q%p[i];for (int i = 1; i <= m; i++) mb[i] = Q%b[i];}
}Ans,k;int main()
{#ifdef DMCfreopen("DMC.txt","r",stdin);#elsefreopen("mod.in","r",stdin);freopen("mod.out","w",stdout);#endiffor (int i = 2; i < maxn; i++) {if (!not_pri[i]) p[++tot] = i;for (int j = 1; j <= tot; j++) {int Nex = p[j]*i;if (Nex >= maxn) break;not_pri[Nex] = 1;}}cin >> n >> m;for (int i = 1; i <= n; i++) scanf("%d",&a[i]);for (int i = 1; i <= m; i++) scanf("%d",&b[i]);p[0] = 1; bool zero = 1; k = 1;for (int i = 1; i <= n; i++) {while (Ans.mp[i] != a[i]) Ans += k,zero = 0;k *= p[i];}if (zero) Ans = k;for (int i = 1; i <= m; i++) printf("%d\n",Ans.mb[i]);return 0;
}

欢(xue)乐(beng)%你赛相关推荐

  1. 欢you度yuan元旦赛(18.1.1)

    T1 最优图像 [题目描述] 小E在好友小W的家中发现一幅神奇的图画,对此颇有兴趣.它可以被看做一个包含N×M个像素的黑白图像,为了方便起见,我们用0表示白色像素,1表示黑色像素.小E认为这幅图画暗藏 ...

  2. 如何显示Spring Boot加载的所有bean

    在Spring Boot中,您可以使用appContext.getBeanDefinitionNames()来获取Spring容器加载的所有bean. 1. CommandLineRunner作为界面 ...

  3. 生成全1矩阵_2020美赛A题(1)-图像处理

    背景介绍 虽然美赛已经过去很久了,但是它对笔者的折磨却还没有停止.由于今年美赛的A题可以用到元胞自动机进行仿真模拟,把这道题作为一道建模的模拟题再合适不过(笔者选的E题,现在觉得当时简直在欢hua乐s ...

  4. 你是把「热点」营销了,却没有营销到品牌

    ---- / BEGIN / ---- 文章开头,我们要来说一个古老的故事. 去年12月6日,日本京都的HIT-POINT公司推出<旅行青蛙>,市场反应很平淡. 1个月后,互联网在把它推到 ...

  5. WC2019 划水记

    写在前面: 本篇是擅长咕咕咕的\(\text{BLUESKY007}\)同学难得不咕写的游记,将会记录\(WC2019(2019.1.24(Day\ 0)\sim2019.1.30(Day\ 6))\ ...

  6. 第十六届全国大学智能车竞赛华北赛区成绩汇总

    简 介: 第十六届全国大学生智能车竞赛在北京科技大学天津学院举行.本文给出了各组别的成绩以及奖项设置. 关键词: 智能车竞赛,华北赛区 §01 各组成绩 一.基础四轮组 学校名称 队伍名称 预赛最好成 ...

  7. 省选前的反演抢救计划

    RT,熟悉的标题 表示开始抢救的时候关于反演的那一套已经快忘完了 然而沙茶博主做反演题的过程基本就是:看题->xjb推->推不动->看题解 主要是莫比乌斯反演,有空就再搞搞二项式反演 ...

  8. 酒桌上的规矩,社会的潜规则

    (一)如果自己真不能喝,丫就别开第一口,端着饭碗夹了菜一边吃着去 (二)如果确信自己要喝,就别装墨迹,接下来就是规矩了 规矩一:酒桌上虽然"感情深,一口闷:感情浅,舔一舔"但是喝酒 ...

  9. 中秋主题html,中秋节活动主题标语

    以下是出国留学网小编为大家精心挑选和整理的中秋节活动主题标语,供大家参考和借鉴,希望能帮助到大家!更多资讯尽在出国留学网! 1. 庆中秋,迎国庆,送大礼! 2. 万家团圆迎中秋,四海欢腾庆国庆 3. ...

最新文章

  1. 驱动保护中的ObjectType_Callback探索
  2. html5--7-33 阶段练习5
  3. Intel提供的面向机器学习和深度学习的优化工具和框架
  4. 什么?面试官问我Java内存模型!这不得给我加薪?
  5. error c4996: 'fopen' This function or variable may be unsafe如何解决
  6. java取邮箱前缀_java抓取网页或文件中的邮箱号码
  7. datatables 响应式
  8. Myeclipse中点(.)不出来方法或者属性?
  9. mock()java,关于java:@ Mock,@ MockBean和Mockito.mock()之间的区别
  10. Python的系统管理_08_python_异常处理
  11. xshell xftp免费版
  12. Jquery(一)选择器
  13. 机器视觉软件EVision介绍
  14. 安装计算机主板时应注意的问题,电脑DIY:电脑主板的安装以及注意事项
  15. 上海交通大学计算机科学与工程系,上海交通大学计算机科学与工程系(CSE)
  16. k1658停运_2020厦门停运动车车次整理
  17. [LeetCode By Python]167. Two Sum II - Input array is sorted
  18. ibis的pkg文件是什么_相机上的体内防抖(IBIS)是什么?
  19. python爬取图片(正则、bs4、Xpath三种方法)
  20. 网络安全:对于小白白的学习建议以及自己的学习计划

热门文章

  1. 网页扩展名是php的是,php文件的扩展名是什么
  2. 大航海日志:老员工, 是一个危险的信号
  3. redis最全面试题
  4. Android 网络性能优化(4)弱网优化
  5. 主管与人相处的十二条准则[转]
  6. 笔记本电脑推荐2020大学生计算机,2020年大学生笔记本电脑推荐
  7. 【Donut论文】Unsupervised anomaly detection via variational auto-encoder for seasonal kpis...
  8. 王喆老师 Sparrow Recsys项目跟读
  9. 对于技术岗位而言,开发岗累还是算法岗累呢?
  10. 猫猫龙猫猫011:设置用户最大可打开文件数,进程数