把x1~xn当成是1~n, 答案是不会变的. 然后直接模拟就行了...... P.S 双倍经验... BZOJ1416 && BZOJ1498 ------------------------------------------------------------------------------- #include<cstdio> #include<cstring> #include<algorithm>   using namespace std;…
题链: http://www.lydsy.com/JudgeOnline/problem.php?id=1416题解: Pòlya瓦罐模型: 给定罐子里每种颜色的球的个数A[i],按题目要求随机操作若干次之后,摸到i号球的概率仍然为A[i]/sum(A[i]). 所以可以把题目看成若干次这种游戏,得出每次取球时的概率,然后更新对应的A[i]和sum(A[i]). 把每次的概率相乘即是答案. 要用到高精度,为了避免除法,可以先把分子分母质因数分解(最大质因子不超过20000), 把分子分母相同的因…
什么鬼双倍经验题??? Sol 考虑在第\(k\)次摸到\(y\)的概率 如果上次摸到\(y\),目前有\(sum\)个球,\(y\)有\(a[y]\)个,那么概率就是\(\frac{a[y]+d}{sum+d}*\frac{a[y]}{sum}\) 如果上次没摸到\(y\),那么概率就是\(\frac{a[y]}{sum+d}*\frac{sum-a[y]}{sum}\) 合在一起就是\(\frac{a[y]}{sum}\) 那么就是直接这样写 # include <bits/stdc++.h…
[BZOJ1416/1498][NOI2006]神奇的口袋(数论,概率) 题面 BZOJ1416 BZOJ1498 洛谷 题面都是图片形式是什么鬼.. 题解 考虑以下性质 1.\(x[1],x[2]..x[n]\)等价于\(1,2,...n\) 证明: 假设取第\(k\)步以前,所有的球的个数分别是\(a[1],a[2]..a[n]\), 球的总数是\(sum\) 那么,第\(k\)步取到颜色\(y\)的概率是\(\frac{a[y]}{sum}\) 考虑第\(k+1\)步取到颜色\(y\)的概…
有一个神奇的口袋,总的容积是40,用这个口袋可以变出一 些物品,这些物品的总体积必须是40. John现在有n(1≤n ≤ 20)个想要得到的物品,每个物品 的体积分别是a1,a2……an.John可以从这些物品中选择一 些, 如果选出的物体的总体积是40,那么利用这个神奇的口袋,John就可以得到这些物品.现在的问题是,John有多少种不同的选择物品的方式. 输入: 输入的第一行是正整数n (1 <= n <= 20),表示不同的物品的 数目. 接下来的n行,每行有一个1到40之间的正整数,…
题目描述 有一个神奇的口袋,总的容积是40,用这个口袋可以变出一些物品,这些物品的总体积必须是40.John现在有n个想要得到的物品,每个物品的体积分别是a1,a2--an.John可以从这些物品中选择一些,如果选出的物体的总体积是40,那么利用这个神奇的口袋,John就可以得到这些物品.现在的问题是,John有多少种不同的选择物品的方式. 输入 输入的第一行是正整数n (1 <= n <= 20),表示不同的物品的数目.接下来的n行,每行有一个1到40之间的正整数,分别给出a1,a2--an…
有一个神奇的口袋,总的容积是40,用这个口袋可以变出一 些物品,这些物品的总体积必须是40.  John现在有n(1≤n ≤ 20)个想要得到的物品,每个物品 的体积分别是a1,a2--an.John可以从这些物品中选择一 些,如果选出的物体的总体积是40,那么利用这个神奇的口 袋,John就可以得到这些物品.现在的问题是,John有多少 种不同的选择物品的方式. 输入  输入的第一行是正整数n (1 <= n <= 20),表示不同的物品的 数目.接下来的n行,每行有一个1到40之间的正整…
时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:948 解决:554 题目描述: 有一个神奇的口袋,总的容积是40,用这个口袋可以变出一些物品,这些物品的总体积必须是40.John现在有n个想要得到的物品,每个物品的体积分别是a1,a2--an.John可以从这些物品中选择一些,如果选出的物体的总体积是40,那么利用这个神奇的口袋,John就可以得到这些物品.现在的问题是,John有多少种不同的选择物品的方式. 输入: 输入的第一行是正整数n (1 <= n <= 20),表示不同的…
题目描述: 有一个神奇的口袋,总的容积是40,用这个口袋可以变出一些物品,这些物品的总体积必须是40.John现在有n个想要得到的物品,每个物品的体积分别是a1,a2……an.John可以从这些物品中选择一些,如果选出的物体的总体积是40,那么利用这个神奇的口袋,John就可以得到这些物品.现在的问题是,John有多少种不同的选择物品的方式. 输入: 输入的第一行是正整数n (1 <= n <= 20),表示不同的物品的数目.接下来的n行,每行有一个1到40之间的正整数,分别给出a1,a2………
描述有一个神奇的口袋,总的容积是40,用这个口袋可以变出一些物品,这些物品的总体积必须是40.John现在有n个想要得到的物品,每个物品的体积分别是a1,a2……an.John可以从这些物品中选择一些,如果选出的物体的总体积是40,那么利用这个神奇的口袋,John就可以得到这些物品.现在的问题是,John有多少种不同的选择物品的方式.输入输入的第一行是正整数n (1 <= n <= 20),表示不同的物品的数目.接下来的n行,每行有一个1到40之间的正整数,分别给出a1,a2……an的值.输出…
总时间限制: 10000ms 内存限制: 65536kB 描述 有一个神奇的口袋,总的容积是40,用这个口袋可以变出一些物品,这些物品的总体积必须是40.John现在有n个想要得到的物品,每个物品的体积分别是a1,a2……an.John可以从这些物品中选择一些,如果选出的物体的总体积是40,那么利用这个神奇的口袋,John就可以得到这些物品.现在的问题是,John有多少种不同的选择物品的方式. 输入 输入的第一行是正整数n (1 <= n <= 20),表示不同的物品的数目.接下来的n行,每行…
正解:数论 解题报告: 传送门 第一次用\(\LaTeX\)和\(markdown\),,,如果出了什么锅麻烦在评论跟我港句QAQ \(1)x_{i}\)可以直接离散 \(2)y_{i}\)的顺序对结果麻油影响 事实上从上面两个结论就可以得到这题的正解,,, 直接按顺序读入然后每次对\(a_{y_{i}}+=d\)就好 下面写证明,,, 先证第一条趴\(QwQ\) 假设在第\(k\)步的时候,各个球的数量是\(a_{1},a_{2},a_{3}...a_{n}\),总数是\(sum\) 然后在第…
题面在这里 题意 开始时袋中有\(t\)种小球,第\(i\)种小球有\(t_i\)个,之后每次等概率取出一个球,第\(i\)次取球时观察这个球的颜色\(c_i\)放回并向袋中加入\(d\)个颜色为\(c_i\)的球; 给出一组询问\([x_i,y_i](1\le i\le n)\),求同时满足第\(x_i\)次取球的颜色为\(y_i\)的概率 \(1≤t,n≤1000, 1≤a_k ,d≤10, 1≤x_1<x_2<-<x_n≤10000, 1≤y_k≤t\) hint 有没有注意到\(…
容易发现操作任意次并不会改变每一个点的概率(因为每一个点加d的概率相同,期望与原数成比例),然后直接输出即可(要用高精度) 1 #include<bits/stdc++.h> 2 using namespace std; 3 #define N 20005 4 int n,m,k,x,s,a[N],vis[N],p[N],mi[N],sum[N]; 5 void calc(){ 6 memset(a,0,sizeof(a)); 7 a[0]=a[1]=1; 8 for(int i=1;i<…
版权声明:未经本人允许,擅自转载,一旦发现将严肃处理,情节严重者,将追究法律责任! 序:代码部分待更[因为在家写博客,代码保存在机房] T1: 题解:插头dp应该很好想吧,我们考虑当出现转折时我们对下一行是没有影响的,于是对于每一行只需要维护3个变量表示3个竖直部分的所在列即可 细节详见代码: T2: 题解:我们发现对于每一对i,j对于答案的贡献只有当他们靠在一块的的时候才会计算,于是题目得到化简,只需计算他们靠在一起的概率,在乘以权值! 概率我们可以通过dp转移到: dp[i][j]+=dp[…
版权声明:未经本人允许,擅自转载,一旦发现将严肃处理,情节严重者,将追究法律责任! 序:代码部分待更[因为在家写博客,代码保存在机房] 测试分数:110 本应分数:160 改完分数:200 T1: 题解:推出了一个初始式子但是n的4分之3次方 忘了合并[实际上是没发现]本来应有60分的,但是忘记开long long 只有30分 因为一些公式不好写出来就直接截图题解吧! T2: 题解:很简单的概率期望,算出每个点被选的概率,然后在上树状数组或者线段树求逆序队,但是我只有80分,为什么解法不行?NO…
#include <cstdio> using namespace std; int n1; int nums[99]; int help(int i, int sum) { if (sum == 0) return 1; if (sum < 0 || i > n1) return 0; return help(i + 1, sum - nums[i]) + help(i + 1, sum); } int main() { while (scanf(" %d",…
Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem 10983 18765 Y 1036 [ZJOI2008]树的统计Count 5293 13132 Y 1588 [HNOI2002]营业额统计 5056 13607 1001 [BeiJing2006]狼抓兔子 4526 18386 Y 2002 [Hnoi2010]Bounce 弹飞绵羊 43…
こんなこといいな できたらいいな 这件事真好啊 能够做到的话就好啦 あんな梦(ゆめ) こんな梦(ゆめ) いっぱいあるけど 那样的梦想 这样的梦想 我还有好多哪 みんなみんなみんな かなえてくれる 大家大家大家 让我实现吧 不思议(ふしぎ)なポッケで かなえてくれる 用那神奇的口袋 让我实现吧 空(そら)を自由(じゆう)に 飞びたいな 想在空中 自由地飞翔呢 「 ハイ!タケコプタ- 」 “好啊!竹蜻蜓——” アンアンアン とっても大好(だいす)き ドラエもん 啊啊啊 哆啦A梦 太喜欢你啦 宿题当番…
The Triangle  http://poj.org/problem?id=1163 暴力dfs的话,每个节点有两条路可以走,那么n个节点复杂度就是2^n  n=100  超时   dp来做 就优化成 n^2 记忆化搜索,就能优化成n^2 因为一个点最多算一次,以后会直接返回dp i j . dp i j 表示这个位置能获得最大值.最后一行就是a i j  ,其他行都可以由下面两条路取最大值. #include<cstdio> #include<cstring> #includ…
今天继续讲的动态规划 ... 补充几个要点: 1. 善于利用滚动数组(可减少内存,用法与计算方向有关) 2.升维 3.可利用一些数据结构等方法使代码更优  (比如优先队列) 4.一般看到数值小的 (十几以内的 ) 考虑 状压 / 搜索 5.状压:有时,状态相当复杂,看上去需要很多空间,比如一个数组 才能表示一个状态,那么就需要对状态进行某种编码,进行 压缩表示. ( 比如:状态和某个集合有关,集合里可以有一些元素,没有 另一些元素,那么就可以用一个整数表示该集合,每个元素 对应于一个bit,有该…
汇总一些常见的算法题目,参考代码. 注:部分题目没有合适的oj地址 枚举 Perfect Cubes.Biorhythms.Counterfeit Dollar.EXTENDED LIGHTS OUT.特殊密码锁.拨钟问题 递归 nnn的阶乘.汉诺塔问题.N皇后问题.逆波兰表达式.四则运算表达式求值.爬楼梯.放苹果.算24.全排列 二分 二分法求方程的根.和为给定数.Aggressive Cows 分治 输出前k大的数.排列的逆序数 动态规划 The Triangle.最长上升子序列.最长公共子…
我们就像一把穿刺敌人的利刃,把敌人开肠破肚----凡尔登高地前气势汹汹的德军 今天没有考试,挺好,有时间自己做题了 今天主要复习+学习了数据结构,列了个表: 已完成:单调队列,线段树,set/vector,大根堆小根堆对顶堆 2.未完成:树状数组(紧急且重要),红黑树(可能永远都不会写了),主席树,treap平衡树(紧急且重要),二叉树,权值平衡树 做的题: 1.已完成:P1801 黑匣子(对顶堆/set/vector) ,P1168 中位数(线段树/对顶堆) ,P1276 校门外的树(增强版)…
题目传送门 [题目大意] 一个口袋里装了t种颜色的球,第i种颜色的球的数目为a[i],每次随机抽一个小球,然后再放d个这种颜色的小球进口袋. 给出n个要求,第x个抽出的球颜色为y,求满足条件的概率. [思路分析] 抽出一个球颜色为i的概率设为f[i],球的总数为sum 在第k步时,$f[i]=\frac{a[i]}{sum}$ 那么在k+1步就有两种情况: 1.第k步抽中了颜色为i的球,那么此时概率为$\frac{a[i]}{sum}*\frac{a[i]+d}{sum+d}$ 2.第k步没有抽…
题目链接 真TM是神奇数论公式. 注明:如无特殊说明我们的除法都是整数除法,向下取整的那种. 首先有个定理叫$d(ij)=\sum\limits_{i|n}{}\sum\limits_{j|m}{}(gcd(i,j)==1)$ 证明……我不会证qwq,可以看这个链接 所以原式$\sum\limits_{i=1}{n}\sum\limits_{j=1}{m}d(ij)$ =$\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m}\sum\limits_{k=1}^{i…
1.      素数统计 (pcount.pas/.c/.cpp) [问题描述] 小tan的老师揣谙戈给同学们布置了一道题,要求统计给定区间内素数的个数.“这不是很简单吗?”小tan忍不住说.揣谙戈冷笑一下说:“等你们看到题目就知道了.”便转身离去. 果然,小tan被那极大的区间吓怕了,现在是你拯救她的时候. [输入] 输入文件名为pcount.in. 输入一行两个正整数a和b,表示给定区间为[a,b]. [输出] 输出文件名为pcount.out. 输出一个整数,表示区间内素数数量. [输入输…
Problem   Codeforces #548 (Div2) - D.Steps to One Time Limit: 2000 mSec Problem Description Input The first and only line contains a single integer mm (1≤m≤100000,1≤m≤100000). Output Print a single integer — the expected length of the array aa writte…
题目链接:传送门 题目大意: 给出一个整数n写在黑板上,每次操作会将黑板上的数(初始值为n)等概率随机替换成它的因子. 问k次操作之后,留在黑板上的数的期望. 要求结果对109+7取模,若结果不是整数,则用分数表示,并对109+7取逆元. (1 ≤ n ≤ 1015, 1 ≤ k ≤ 104) 思路: 首先我们要知道,在模109+7的范围内,可以任意进行模109+7的加减乘除运算,因为一个给定的数值,它在模109+7条件下的值是唯一确定的. 然后我们只要正常地计算,在每次运算之后对109+7取模…
正品的概率 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 848    Accepted Submission(s): 67 Problem Description 袋中有m枚正品硬币,n枚次品硬币(次品硬币两面都有国徽),在袋中任取一枚,将它投掷k次,已知每次得到的都是国徽,那么这枚硬币是正品的概率是多少?   Input 输入包含多…
要在HDU上交的话,要用滚动数组优化一下空间. 这道题想了很久,也算是想明白了,就好好写一下吧. P1:激活游戏失败,再次尝试. P2:连接失服务器败,从队首排到队尾. P3:激活游戏成功,队首的人出队. P4:服务器down掉,所有人都不能激活了. 设d(i, j)表示i个人排队,主人公排在第j位,发生所求事件的概率. d(i, 1) = P1 d(i, 1) + P2 d(i, i) + P4 //分别对应激活失败,重新尝试:连接失败排到队尾:服务器down掉 特殊地可以直接计算出 d(1,…