2017 国庆湖南 Day5】的更多相关文章

期望得分:76+80+30=186 实际得分:72+10+0=82 先看第一问: 本题不是求方案数,所以我们不关心 选的数是什么以及的选的顺序 只关心选了某个数后,对当前gcd的影响 预处理 cnt[i] 表示 i的倍数有多少个 g[i][j] 表示gcd(i,第j张卡片上的数) dp[i][j] 表示已经选了i个数,gcd=j 的 概率 再选k,要么gcd不变,要么变小 1.gcd不变 即k是j的倍数,因为已经选了i个且都是j的倍数,所以在剩下的n-i 个数中,还有 cnt[j]-i 个数可以…
期望得分:100+100+60=260 实际得分:100+85+0=185 二分最后一条相交线段的位置 #include<cstdio> #include<iostream> #include<algorithm> using namespace std; #define N 100001 int x[N],y[N]; struct node { int b; double k; }Point[N]; void read(int &x) { x=; char c…
卡特兰数 #include<cstdio> #include<cstring> #include<algorithm> using namespace std; ]; int main() { freopen("stack.in","r",stdin); freopen("stack.out","w",stdout); int n; scanf("%d",&n);…
期望得分:100+30+60=190 实际得分:10+0+55=65 到了233 2是奇数位 或223 第2个2是偶数位就会223 .233 循环 #include<cstdio> #define N 1000001 using namespace std; ]; int main() { freopen("trans.in","r",stdin); freopen("trans.out","w",stdout);…
期望得分:20+40+100=160 实际得分:20+20+100=140 破题关键: f(i)=i 证明:设[1,i]中与i互质的数分别为a1,a2……aφ(i) 那么 i-a1,i-a2,…… i-aφ(i) 也与i互质 所以 Σ ai = i*φ(i)- Σ ai 所以 Σ ai = i*φ(i)/2 所以 f(i)Σai / φ(i) * 2 = i 问题转化为 求 Σ i^k 用拉格朗日差值法 我是真没看懂 题解: std: #include <cstring> #include &…
期望得分:100+30+100=230 实际得分:100+30+70=200 T3 数组开小了 ..... 记录 1的前缀和,0的后缀和 枚举第一个1的出现位置 #include<cstdio> #include<cstring> #include<algorithm> #define N 100002 using namespace std; char s[N]; int num[N]; int suf0[N],pre1[N]; int main() { freope…
期望得分:100+100+20=220 实际得分:100+100+20=220 (好久没有期望==实际了 ,~\(≧▽≦)/~) 对于 a........a 如果 第1个a 后面出现的第1个b~z 是右端点,且在第2个a之前,那么有贡献 如果 第2个a 前面出现的第1个b~z 是左端点,且在第1个a之后,那么有贡献 最后的贡献/2 #include<cstdio> #include<cstring> #define N 100001 using namespace std; cha…
期望得分:60+ +0=60+ 实际得分:30+56+0=86 时间规划极端不合理,T2忘了叉积计算,用解析几何算,还有的情况很难处理,浪费太多时间,最后gg 导致T3只剩50分钟,20分钟写完代码,没调出来 设sum[i][j] 表示字母j出现次数的前缀和 那么题目要求我们 最大化sum[r][x]-sum[l-1][x]-(sum[r][y]-sum[l-1][y]) 如果枚举r,再枚举y,时间复杂度为O(n*26),是可以承受的 但此时还有l-1未知,能否O(1)找到l-1呢? 我们发现式…
链接:https://www.nowcoder.com/acm/contest/205/B来源:牛客网 题目描述 终于活成了自己讨厌的样子. 听说多听电音能加快程序运行的速度. 定义一个数列,告诉你a0,a1,m0,m1,c,定义an=m0an-1+m1an-2+c对所有n≥ 2. 求 输入描述: 第一行一个整数T(1≤ T≤ 1000),表示数据组数.每组数据一行7个整数a 0 ,a 1 ,m 0 ,m 1 ,c,M,k,保证1≤ M≤ 10 18 ,0≤ a 0 ,a 1 ,m 0 ,m 1…
链接:https://www.nowcoder.com/acm/contest/205/G来源:牛客网 题目描述 终于活成了自己讨厌的样子. 充钱能让你变得更强. 在暖婊这个游戏里面,如果你充了x元钱,那么你能获得10x个钻石.同时暖婊也有m档VIP,如果你往暖婊里面充了ai个钻石,那么你能成为第i档贵族用户.当你成为第i档贵族用户之后,那么你可以获得的优惠. 你需要k件材料合成衣服,其中第i件材料原价为di个钻石,你一共需要ci件这种材料.当你获得p的优惠时,这个材料的真实价格为. 请问栗子米…
T1 方阵 题目 [题目描述] 小澳最近迷上了考古,他发现秦始皇的兵马俑布局十分有特点,热爱钻研的小澳打算在电脑上还原这个伟大的布局. 他努力钻研,发现秦始皇布置兵马俑是有一定规律的.兵马俑阵总共有n行m列,秦始皇在布置的时候每次会指定一行或一列,然后指定一个兵种,使得这一行或者这一列上全部放上这一个兵种.如果这一行上以前放过其它的兵种,那么他会拔掉以前的兵种改成现在他命令的兵种. 小澳从秦朝的文献中找到了布置这个方阵的操作顺序,他希望你能告诉他布局完成后整个兵马俑阵是什么样子的. [输入格式]…
题目背景 2017国庆清北D1T1 题目描述 你是能看到第一题的 friends 呢. ——hja 何大爷对字符串十分有研究,于是天天出字符串题虐杀 zhx.何大爷今天为 字符串定义了新的权值计算方法.一个字符串由小写字母组成,字符串的权值 被定义为其中出现次数最多的字符的次数减去出现次数最少的字符的次数. (注 意,在讨论出现最少的字符的时候,该字符必须至少出现一次)现在何大爷给 你一个字符串,何大爷想知道这个字符串的所有子串中权值最大的权值是多 少? 输入输出格式 输入格式: 第一行一个整数…
1909: Perfect Chocolate Submit Page   Summary   Time Limit: 3 Sec     Memory Limit: 128 Mb     Submitted: 90     Solved: 42 Description There is a chocolate, is composed of black and white small pieces. Xiao Ming is very fond of this chocolate, and t…
期望得分:0+60+60=120 实际得分:0+30+60=90 令g=gcd(X11,X12,X13……) 则行列式可能为D的充要条件为g|D 1.g|D为必要条件: 由定义来算行列式的时候,每一项都要从第一行里取一个数,所以g|D 2.g|D为充分条件: 首先可以通过矩阵的初等变换,将矩阵X消成对角矩阵 其中,X11* X22 * X33* X44=D 上述矩阵等价于 把D拆为g*D/g 还原到矩阵中 即     X22= 此矩阵模拟先前初等变换即可还原为原矩阵X #include <alg…
期望得分:100+60+100=260 实际得分:0+60+40=100 设图中有m个环,每个环有si条边,有k条边不在环中 ans= (2^s1 -2)*( 2^s2 -2)* (2^s3 -2)…… *( 2^sm -2)* 2^k (环上的边只有两种可能形成环) 找环好找,怎么找树? 一种方法是tarjan找出所有的环,总边数-环的边数=树的边数 std用了拓扑排序 考场上忘了树的情况,爆零了. 注意:n个点n条边是环套树森林 #include<cstdio> #define N 100…
Loj #6073.「2017 山东一轮集训 Day5」距离 Description 给定一棵 \(n\) 个点的边带权的树,以及一个排列$ p\(,有\)q $个询问,给定点 \(u, v, k\),设$ path(u,v) \(表示\) u$ 到 $v \(的路径,\)dist(u,v) \(表示\) u$ 到\(v\) 的距离,希望你求出 Input 第一行一个整数 \(type =0/1\)表示这个测试点的数据类型. 第二行两个整数 \(n,q\). 接下来$ n−1$ 行,每行三个整数…
「2017 山东一轮集训 Day5」苹果树 \(n\leq 40\) 折半搜索+矩阵树定理. 没有想到折半搜索. 首先我们先枚举\(k\)个好点,我们让它们一定没有用的.要满足这个条件就要使它只能和坏点相连.其他的点没有要求.这样算出来了至少\(k\)个点没有用的生成树个数,我们要得到恰好\(k\)个点的生成树个数就简单容斥一下就好了. 然后我们要得到有\(k\)个点没有用的情况下的点集的方案数.看到\(40\)这个范围我们容易想到折半搜索. 然后就没了. 但是我没写容斥,写的枚举集合划分(被吊…
湖南师范大学计算机基础课网络教学平台 版本 V2.0(2017.9.18) 开发环境: 开发工具:VS2013,数据库:Sqlserver2012 开发语言:Asp.net MVC5 ,界面UI:jquery easyui 1.5.2 功能介绍 1.教务管理:学生选课:课程信息(课表.教学大纲.教学日历.试卷分析):2.实验管理:实验任务列表.实验内容.提交起止日期管理.自动评阅情况:3.测验管理:随堂客观题(选择题).主观题(操作题)测验及自动评阅:4.平时管理:记录每次登录的时间.地点.登录…
2019牛客国庆集训派对day5 I.Strange Prime 题意 \(P=1e10+19\),求\(\sum x[i] mod P = 0\)的方案数,其中\(0 \leq x[i] < p - a[i]\) 做法 神仙容斥,太妙啦 首先考虑存在\(a[i] = 0\)时,其它数可任意选 枚举哪些位置违反条件进行容斥 列出式子发现,这简直就是二项式分解! 但当所有位置都违反时,不存在可能的解,所以需要把它剪掉,这也就是数据小于1e5的原因,简直太神奇了!…
题目大意:给你一个n个数的数列s,要对这些数进行分组,当有任意两个数在一种方案在一起而在另一种方案中不在一起算是两种不同的方案,一个组的"不和谐程度"为组内数的极差,如果只有一个人的话,此组的不和谐程度为0,求有多少种分组方式,使所有组的不和谐程度不超过k? 数据范围 1<=n<=200,0<=k<=1000,1<=si<=500 样例 input1 4 5 1 3 5 7 output1 9 input2 5 6 1 4 5 8 9 output2…
期望得分:0+40+30=70 实际得分:0+10+10=20 题目修改:只能由0变1,只能用一次操作 大模拟 #include<cstdio> #include<cstring> using namespace std; ]; int len,n; ]; bool solve1() { if(len!=n) return false; ; ;i<len;i++) ; )==) { puts(s); return true; } return false; } bool so…
期望得分:100+100+100=300 实际得分:100+100+100=300 T1 一道图论好题(graph) Time Limit:1000ms   Memory Limit:128MB 题目描述 LYK有一张无向图G={V,E},这张无向图有n个点m条边组成.并且这是一张带权图,不仅有边权还有点权. LYK给出了一个子图的定义,一张图G’={V’,E’}被称作G的子图,当且仅当 ·G’的点集V’包含于G的点集V. ·对于E中的任意两个点a,b∈V’,当(a,b)∈E时,(a,b)一定也…
题意 题目链接 Sol 首先对询问差分一下,我们就只需要统计\(u, v, lca(u, v), fa[lca(u, v)]\)到根的路径的贡献. 再把每个点与\(k\)的lca的距离差分一下,则只需要统计每个点与\(k\)的lca深度.这个东西等价于所有的链与\(k\)到根的链的并. 树剖+主席树维护一下.这题的主席树需要区间加1,可以标记永久化合并标记 复杂度\(O(n\log ^2n)\) #include<bits/stdc++.h> #define Pair pair<LL,…
题目描述 Miranda 准备去市里最有名的珠宝展览会,展览会有可以购买珠宝,但可惜的是只能现金支付,Miranda 十分纠结究竟要带多少的现金,假如现金带多了,就会比较危险,假如带少了,看到想买的右买不到.展览中总共有 N 种珠宝,每种珠宝都只有一个,对于第 i种珠宝,它的售价为 Ci​ 万元,对 Miranda 的吸引力为 Vi​.Miranda 总共可以从银行中取出 K 万元,现在她想知道,假如她最终带了 i 万元去展览会,她能买到的珠宝对她的吸引力最大可以是多少? 题解 菜死了菜死了..…
填坑填坑.. 感谢wwt耐心讲解啊.. 如果要看这篇题解建议从上往下读不要跳哦.. 30pts 把$A$和$C$看成$n$个$n$维向量,那$A_i$是否加入到$C_j$中就可以用$B_{i,j}$表示了 枚举矩阵$A$,求出它的秩$r$,如果$C$在$A$的线性空间内则$C$可以被$A$表示出来 那么$B$矩阵的方案数就是$(2^{n-r})^n$ 这时候我们可以发现,由于枚举$A$覆盖了所有情况,秩相同的$C$的答案都是一样的 然后就可以打表算答案了.. 60pts 如果不想看可以跳过这段…
题意 题目链接 Sol 我们可以把图行列拆开,同时对于行/列拆成很多个联通块,然后考虑每个点所在的行联通块/列联通块的贡献. 可以这样建边 从S向每个行联通块连联通块大小条边,每条边的容量为1,费用为\(i\)(i表示这是第几条边). 从每个点所在的行联通块向列联通块连边,容量为1,费用为0 从每个列联通块向T连联通块大小条边,每条边的容量为1,费用为\(i\)(i表示这是第几条边). 这样跑最小费用最大流,每增光一次的费用就是答案.预处理后O(1)回答即可 #include<bits/stdc…
题目链接 就是恶心人的,简单写写了...(似乎就是[HNOI2015]开店?) 拆式子,记\(dis_i\)为\(i\)到根节点的路径权值和,\(Ans=\sum dis_{p_i}+\sum dis_k-2\sum dis_{LCA(p_i,k)}\).\(\sum dis_{LCA(p_i,k)}\)的求法类似[LNOI2014]LCA,在每个\(u\to v\)路径上,每个\(p_i\)到根节点的路径上权值\(+1\)(本题就是下放点权,每次所有点的\(sum\)加上它的点权),然后求一遍…
题目描述 终于活成了自己讨厌的样子. 这是她们都还没长大的时候发生的故事.那个时候,栗子米也不需要为了所谓的爱情苦恼. 她们可以在夏日的午后,花大把的时间去研究生活中一些琐碎而有趣的事情,比如数论. 有一天西柚柚问了栗子米一个题,她想知道中有多少不同的数,这些不同的数字里面第k大的是多少. 输入描述: 第一行一个整数T(T≤ 10 5 ),表示数据组数.每组数据第一行两个整数,表示n,k(1≤ n≤ 10 18 ),保证k不会超过不同的数字个数. 输出描述: 对于每组数据输出,输出两个整数,表示…
/** 首先通过SAM求出每个串本质不同的子串 然后发现转移不好处理整体的本质不同 形如串A可能状态有a,b,ab,空,串B可能状态有b,空两种, 那么我们需要处理ab + 空 和 a + b的情况 为了避免这种情况,我们强行假定 假若A的某个状态x存在字符b的trans, 那么他就不能从下一个自动机中开头为b的状态转移 实现这个可以通过预处理下个串每种字符开头的dp值或者采用所有无法匹配的叶子向之后的sam的root连边之后求DaG路径数的方式来统计答案 */ #include<cstdio>…
/* 写完开店再写这个题目顿时神清气爽, 腰也不疼了, 眼也不花了 首先考虑将询问拆开, 就是查询一些到根的链和点k的关系 根据我们开店的结论, 一个点集到一个定点的距离和可以分三部分算 那么就很简单了吧QAQ, 在树上可持久化弄一下 */ #include<cstdio> #include<algorithm> #include<cstring> #include<queue> #include<iostream> #define ll lon…