辽宁OI2016夏令营模拟T1-dis】的更多相关文章

数值距离(dis.pas/c/cpp)题目大意我们可以对一个数 x 进行两种操作:1. 选择一个质数 y,将 x 变为 x*y2. 选择一个 x 的质因数 y,将 x 变为 x/y定义两个数 a,b 之间的距离为把 a 变成 b 所需要执行的最少操作次数.例如数 69 与 42之间的距离为 3,因为 42=69/23*2*7现在有一个长度为 n 的序列 a1,a2,…,an.对于每一个 i,我们需要找到一个 j,使得 ai 到aj 的距离最小,若有多个 j 满足条件,输出最小的 j.输入文件输入…
最短路(road.pas/c/cpp)题目大意有一个点数为 n,边数为 m 的无向图,点的编号为 1 到 n.边的权值均为非负数.现在请你求出从点 1 到点 n 的最短路径条数,若有无限条则输出-1,答案对于1000000009 取模.输入文件输入文件为 road.in.输入共有 m+1 行.第一行有两个整数 n,m,表示图中所有的点数与边数.接下来的 m 行,每行三个整数 x,y,z,表示了一条边的起点.终点以及该边的长度.输出文件输出文件为 road.out.输出一个整数表示从点 1 至点…
放棋子(chess.pas/c/cpp)题目大意现在有一个 n*m 的棋盘,现在你需要在棋盘上摆放 2n 个棋子,要求满足如下条件:1. 每一列只能有一个棋子:2. 每一行的前 xi 个格子有一个棋子,而且最多有一个棋子:3. 每一行的后 yi 个格子有一个棋子,而且最多有一个棋子:求一共有多少种不同的放置方案,答案对于 1000000007 取模输入文件输入文件为 chess.in.输入共有 n+1 行.第一行有两个整数 n,m,表示该棋盘的行数与列数.接下来的 n 行,每行两个整数 xi 和…
20181229模拟 T1 palindrome 题意 : \(S\)是字符串\(s\)的子串可重集,求\(\sum\limits_{x\in S}\sum\limits_{y\in S}(|x|+|y|)\times [xy\ is \ palidrome]mod\ 2013265921\). 分析: \(2013265921\)的原根是\(31\),所以这道题我使用后缀自动机+回文树来解决. 注意到一个由两个字符串所组成的回文串\(xy\),不妨设\(|x|<|y|\),\(y\)显然是由一…
那么第一题首先非常水的一道题…… 看一下题 数字(number) Time Limit:1000ms   Memory Limit:128MB 题目描述 LYK拥有n个数,这n个数分别是a1,a2,…,an. 有一天它做了一个梦,在梦里它的这n个数有部分被小偷偷走了,只剩下了m个数b1,b2,…,bm.它想知道有哪些数字被小偷偷走了! LYK告诉你a和b的值,你需要从小到大的告诉LYK,哪些数字不见了! 输入格式(number.in) 第一行一个数n,第二行n个数ai,表示一开始的数字. 第三行…
这道题就是道状压dp...比赛的时候太贪心 然后状压又不好 所以T2 T3一起挂了QAQ 吸取教训QAQ f[i][j][k]表示前i个数选了j个 最后a个的状态为k的答案 #include<cstdio> #include<cstring> #include<algorithm> #define LL long long using std::swap; ; int read(){ ,f=,c=getchar(); ; c=getchar();} +(c-'); c=…
调了一个下午只有八十分QAQ md弃了不管了 对拍也没拍出来 鬼知道是什么数据把我卡了QAQ 没事我只是个SB而已 这题其实还是蛮正常的 做法其实很简单 根据链剖的构造方法 你每次修改都是一段又一段的线段 那么你只要求一下线段并起来后哪些地方被覆盖了>=t次 不过要基数排序一波不然会T #include<cstdio> #include<cstring> #include<algorithm> #define LL long long using std::swa…
问题 A: 礼物 时间限制: 1 Sec  内存限制: 256 MB 题面 题目描述 夏川的生日就要到了.作为夏川形式上的男朋友,季堂打算给夏川买一些生 日礼物. 商店里一共有种礼物.夏川每得到一种礼物,就会获得相应喜悦值Wi(每种 礼物的喜悦值不能重复获得). 每次,店员会按照一定的概率Pi(或者不拿出礼物),将第i种礼物拿出来. 季堂每次都会将店员拿出来的礼物买下来.没有拿出来视为什么都没有买到,也 算一次购买. 众所周知,白毛切开都是黑的.所以季堂希望最后夏川的喜悦值尽可能地高. 求夏川最…
1185 威佐夫游戏 V2  基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题  收藏  关注 有2堆石子.A B两个人轮流拿,A先拿.每次可以从一堆中取任意个或从2堆中取相同数量的石子,但不可不取.拿到最后1颗石子的人获胜.假设A B都非常聪明,拿石子的过程中不会出现失误.给出2堆石子的数量,问最后谁能赢得比赛. 例如:2堆石子分别为3颗和5颗.那么不论A怎样拿,B都有对应的方法拿到最后1颗. Input 第1行:一个数T,表示后面用作输入测试的数的数量.(1 <=…
T1 传送门 解题思路 这似乎是小学数学知识???mod 9就相当于各位之和mod 9,打表求了个逆元,等差数列求和公式就行了. #include<iostream> #include<cstdio> #include<cstring> #include<cmath> using namespace std; typedef long long LL; inline LL rd(){ LL x=,f=;char ch=getchar(); :;ch=getc…