题面和数据 : 二次联通门

难度 : 普及-

/*T1 求多项式结果的后k位,由于k<=8, 所以不必考虑高精了,直接把多项式一遍算,一边取模,注意用快速幂,最后补0输出即可。复杂度 O (n log b)
*/
#include <cstdio>#define Max 100090void read (int &now)
{register char word = getchar ();bool temp = false;for (now = 0; word < '0' || word > '9'; word = getchar ())if (word == '-')temp = true;for (; word >= '0' && word <= '9'; now = now * 10 + word - '0', word = getchar ());if (temp)now = -now;
}int Mod = 1;
int N, K, X;int a[Max], b[Max];long long Fast_Pow (long long x, long long p)
{register long long res = 1;for (; p; p >>= 1){if (p & 1)res = res * x % Mod;x = x % Mod * x % Mod;}return res;
}#define Judge
long long Answer;int number[Max / 1000];int main (int argc, char *argv[])
{#ifdef Judgefreopen ("digits.in", "r", stdin);freopen ("digits.out", "w", stdout);#endif read (N);read (K);for (int i = 1; i <= N; i ++){read (a[i]);read (b[i]);}for (int i = K, res = 10; i; i >>= 1){if (i & 1)Mod = Mod * res;res *= res;}read (X);for (int i = 1; i <= N; i ++)Answer = (Answer + (a[i] * Fast_Pow (X, b[i]) % Mod)) % Mod; int Count = 0;for (; Answer > 0; number[++ Count] = Answer % 10, Answer /= 10);for (int i = Count; i < K; i ++, printf ("0\n"));for (; Count >= 1; printf ("%d\n", number[Count --]));return 0;
} 

/*T2把多项式左边的负项移到右边, O(N^3)预处理出右边的结果,用一个桶记录下来,后O(N^3)枚举左边的结果, 加减就好了 复杂度O(N^3)
*/
#include <cstdio>#define Max 60000002#define N 6void read (int &now)
{register char word = getchar ();bool temp = false;for (now = 0; word < '0' || word > '9'; word = getchar ())if (word == '-')temp = true;for (; word >= '0' && word <= '9'; now = now * 10 + word - '0', word = getchar ());if (temp)now = -now;
}#define Judgeint K;short z_count[Max];
short f_count[Max];int a1, a2, a3, a4, a5, a6;int main (int argc, char *argv[])
{#ifdef Judge freopen ("equation.in", "r", stdin);freopen ("equation.out", "w", stdout);#endifread (K);read (a1);read (a2);read (a3);read (a4);read (a5);read (a6);    register int x;for (register int i = 1, j, k; i <= K; i ++)for (j = 1; j <= K; j ++)for (k = 1; k <= K; k ++){x = a2 * i + a4 * j + a6 * k;if (x >= 0)z_count[x] ++;elsef_count[-x] ++;}int Answer = 0;for (register int i = 1, j, k; i <= K; i ++)for (j = 1; j <= K; j ++)for (k = 1; k <= K; k ++){x = a1 * i + a3 * j + a5 * k;if (x >= 0)Answer += z_count[x];elseAnswer += f_count[-x];}printf ("%d", Answer);return 0;
}

/*T3 由于k>=n,所以一天最多走一条边,则问题转化为了求最小瓶颈生成树的裸题。。。。若一直到最后起点与终点都不联通,那么则无解复杂度 O(M logM + M) = O (M log M)
*/
#include <algorithm>
#include <cstdio>#define Max 8000void read (int &now)
{register char word = getchar ();for (now = 0; word < '0' || word > '9'; word = getchar ());for (; word >= '0' && word <= '9'; now = now * 10 + word - '0', word = getchar ());
}inline int max (int a, int b)
{return a > b ? a : b;
}struct Edge
{int from;int to;int dis;bool operator < (const Edge &now) const{return this->dis < now.dis;}
};class Unio_Find_Set
{private :int father[Max];public :void Prepare (int N){for (int i = 1; i <= N; i ++)father[i] = i;}int Find (int x){return father[x] == x ? x : father[x] = Find (father[x]);}inline void Unio (int a, int b){father[a] = b;}
};Unio_Find_Set Ufs;int N, M, K;Edge edge[Max * 30];
#define Judgeint main (int argc, char *argv[])
{#ifdef Judge freopen ("graph.in", "r", stdin);freopen ("graph.out", "w", stdout);#endifread (N);read (M);read (K);for (int i = 1; i <= M; i ++){read (edge[i].from);read (edge[i].to);read (edge[i].dis);}Ufs.Prepare (N);std :: sort (edge + 1, edge + 1 + M);int Count = 0;for (register int i = 1, x, y; i <= M; i ++){x = Ufs.Find (edge[i].from);y = Ufs.Find (edge[i].to);if (x != y){Ufs.Unio (x, y); Count ++;}if (Ufs.Find (1) == Ufs.Find (N)){printf ("%d", edge[i].dis);return 0;}if (Count == N - 1)break;}printf ("-1");return 0;
}

转载于:https://www.cnblogs.com/ZlycerQan/p/7221422.html

7.22 校内模拟赛相关推荐

  1. 2021年 第十二届蓝桥杯第二期校内模拟赛题解(Java版)

    时隔多日,终于会写一些简单DP了哈哈哈! 稍微改版,方便阅读,若有错,请指出 2019年 第十届蓝桥杯省赛题解(JavaB组版) 2020年 第十一届蓝桥杯第一场省赛题解(JavaB组版) 2020年 ...

  2. 第十四届蓝桥杯校内模拟赛第一期——Python

    第十四届蓝桥杯校内模拟赛第一期--Python 文章目录 第十四届蓝桥杯校内模拟赛第一期--Python 1.二进制位数 问题描述 参考答案 扩展 2. 晨跑 问题描述 参考答案 扩展 3. 调和级数 ...

  3. [蓝桥杯第十一届校内模拟赛] Apare_xzc

    华中师范大学蓝桥杯第十一届校内模拟赛 2020/3/22 8:00-12:00 题目还是比省赛要简单的,我9:25就做完了. 第一题 分析: 简单题,求给定的1200000的正约数的个数.我们可以暴力 ...

  4. 2017.6.11 校内模拟赛

    题面及数据及std(有本人的也有原来的) :2017.6.11 校内模拟赛 T1 自己在纸上模拟一下后就会发现 可以用栈来搞一搞事情 受了上次zsq 讲的双栈排序的启发.. 具体就是将原盘子大小cop ...

  5. 第十四届蓝桥杯校内模拟赛第二期-Java个人题解(仅供参考)

    刚刚结束第十四届蓝桥杯校内模拟赛第二期,在这记录下自己的代码 不保证正确! 不保证正确! 不保证正确! 有问题一起改正!! 题解 2048 代码: package _14届模拟2;public cla ...

  6. 蓝桥杯校内模拟赛_C++组

    蓝桥杯校内模拟赛 填空题 填空题比较简单,只需要在空格中填写整数答案即可: 在计算机存储中,15.125GB是多少MB? 解题思路: 1GB=1024MB,打开系统计算器计算即可 答案: 15488 ...

  7. 【蓝桥】软件校内模拟赛(二)反倍数 题目+题解

    文章目录 前言 反倍数 题目描述 前言 本题解为第十一届软件类校内模拟赛个人题解,但非官方满分题解,因此,可能存在下列问题 题意理解错误,导致答案错误. 代码中存在一些问题,导致答案错误. 算法复杂度 ...

  8. 【蓝桥】第十一届软件类校内模拟赛(二)填空题部分

    起晚了起晚了,比赛都快结束了才整完qwq 文章目录 前言 填空题 1题目描述 2题目描述 3题目描述 4题目描述 前言 本题解为第十一届软件类校内模拟赛个人题解,但非官方满分题解,因此,可能存在下列问 ...

  9. 【蓝桥】第十一届软件类校内模拟赛(一)

    前言 本题解为第十一届软件类校内模拟赛个人题解,但非官方满分题解,因此,可能存在下列问题 题意理解错误,导致答案错误. 代码中存在一些问题,导致答案错误. 算法复杂度的分析有误,导致不能在规定时间内得 ...

最新文章

  1. 提高性能:用RequireJS优化Wijmo Web页面
  2. 实验三:XML模型(二)
  3. vue el-upload上传组件限制文件类型:accept属性
  4. mysql5.7.24免安装版配置_mysql5.7.20免安装版配置方法图文教程
  5. Excel实用函数大全(名称、功能、说明、用法、举例)
  6. pythonqt4上位机开发_「新阁教育」自由口通信上位机实战案例
  7. win7 删除Windows服务的方法
  8. [html] HTML5中的article和section有什么区别?
  9. 调试某游戏副本中的加亮提示信息思路
  10. 用TensorFlow做Kaggle“手写识别”达到98%准确率-详解
  11. es6 去掉空格_es6 filter() 数组过滤方法总结
  12. 【POJ2676】Sudoku(优化搜索顺序)
  13. oracle sqlplus ed,Uedit32与SQLPlus结合使用技巧-数据库专栏,ORACLE
  14. 2016年回顾2017年目标之流水账
  15. PHP的类中的常量,静态变量的问题。
  16. 天地图JS API制作专题图
  17. C语言-顺序栈的基本操作
  18. GB2312-80 汉字机内码
  19. 21世纪青年人最该阅读的书籍清单
  20. 计算机课搞事情检讨,考试作弊被抓写的检讨书(精选10篇)

热门文章

  1. 比explain更加详细的分析计划:Query Profiler
  2. 多层感知器(MLP)详解【基于印第安人糖尿病数据】
  3. 【深度学习入门到精通系列】R2 Unet解释
  4. Windows环境下配置环境变量
  5. mysql sha1prng_Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException | 学步园...
  6. python中使用函数编程的意义_总结Python编程中函数的使用要点
  7. phpexecl保存mysql_【PHP】将数据库表保存为Excel(PHPExcel)
  8. python实现简易版成绩管理系统_Python 实现简易版成绩管理系统!
  9. python科学计数法转换_柳小白Python学习笔记35 Excel之科学计数法类型转换及数据选取1...
  10. mysql如何插入新的字段_Mysql 如何 得到新插入的字段ID