真的猛士,敢于开数学!!!!!

dp专题看得差不多了,本来是想看图论,

但是那天物理课,莫名打开了数学专题

看了一半也不太好,就先看完再说吧~

数学专题不用markdown好难写啊

1.组合数学

UVa580

题意:一个长度为n的序列(n<=30),由若干U,L组成

有大于等于3个连续的U的序列则为危险序列

求危险序列的数量

方法一:(LRJ)

f(n)=(1<<n-3) + sigma ( g(i-2)*(1<<(n-i-2) )    (i from 2 to n-2)
g(i)=(1<<i)-f(i)

g表示长度为i的安全序列的个数

因为题目的要求是最少三个U,那么则假设第i,i+1,i+2,位置放置的U使序列“由安全变成危险

也就是说,希望第i个位置的U起决定性作用

那么为了防止前面已经有序列起到决定性作用,我们使第i-1个一定为L

---->对于第i个位置,有g(i-2)*(1<<(n-i-2))

---->前i-2个没有危险序列的个数 * 第(i+3~n)个任意排列

式子里面的 (1<<n-3)指的是i==1的情况

因为求和是从i==2开始的

f[0]=f[1]=0=f[2]=0;

g[0]=1,g[1]=2,g[2]=4;
 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 int f[40], g[40];
 4 int main(){
 5     f[0] = f[1] = f[2] = 0;
 6     g[0] = 1, g[1] = 2, g[2] = 4;
 7     for (int i = 3; i <= 35;i++){
 8         f[i] = (1 << (i - 3));
 9         for (int j = 2; j <= i-2;j++){
10             f[i] += g[j - 2] * (1 << (i - j - 2));
11         }
12         g[i] = (1 << i) - f[i];
13     }
14     int n;
15     while(cin>>n&&n){
16         cout << f[n] << endl;
17     }
18     system("pause");
19     return 0;
20 }

方法二:

  dp[i]表示第i位为L结尾的序列数量:

dp[i]=dp[i-1]+dp[i-2]+dp[i-3];

  对于第i-1个位置   我们想要放置U,但是序列不危险,则可以考虑,让i-1,i-2,i-3的任何一个不为U(加法计数)

dp[1]=1,dp[2]=2,dp[3]=4,dp[4]=7;
 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 int f[40];
 4 int main(){
 5     f[1] = 1, f[2] = 2, f[3] = 4;
 6     for (int i = 4; i <= 32;i++){
 7         f[i] = f[i - 1] + f[i - 2] + f[i - 3];
 8     }
 9     int n;
10     while(cin>>n&&n){
11         int ans = (1 << n);
12         ans -= f[n + 1];
13         cout << ans << endl;
14     }
15 }

个人觉得第一种的思路比较好想(容易想错),第二种的更简洁

好无聊,不想写了

原文地址:https://www.cnblogs.com/guaguastandup/p/10606653.html

时间: 2024-08-27 21:03:55

真的猛士,敢于开数学!!!!!的相关文章

你真的离不开新闻吗?

<你真的离不开新闻吗>,这是一篇来自罗尔夫•多贝里的文章,也是来自<明智行动的艺术>一书最后的部分.在这篇文章看完之后,我决定断掉一些经常刷新的东西,比如朋友圈,来尝试一下不看新闻是否能带来价值.如果刷朋友圈是寻找存在感,那么我们的一生有很多可以追求的东西,以下为全文,我直接帖了出来.这种转载其实是并不负责的,但如果你喜欢这个文章,我还是功你去购买<明智行动的艺术>原书. 苏门答腊的地震.俄罗斯的坠机事件.一个男人将自己的女人在地下室关了30年.海蒂·克鲁姆和席尔分手.

BeginInvoke 方法真的是新开一个线程进行异步调用吗?

转自原文BeginInvoke 方法真的是新开一个线程进行异步调用吗? 参考以下代码: public delegate void treeinvoke(); private void UpdateTreeView() { MessageBox.Show(System.Threading.Thread.CurrentThread.Name); } private void button1_Click(object sender, System.EventArgs e) { System.Threa

BI和数据仓库:企业分析决策真的离不开数据仓库吗?

很长一段时间,BI和数据仓库几乎都是如影随形.难舍难分.企业如果想要实行"数据驱动决策-决策推动业务发展"的机制,就必须先有数据仓库充当中央存储库,供BI查询和调取,然后再在BI上进行数据的分析与可视化. 但数据分析和商业决策发展至今,企业想要实现数据驱动决策,是否还是无法绕过数据仓库?在现代商业环境中重新定义BI和数据仓库,我们又能不能找到合适的替代方案? 今天,我们就这个命题展开讨论,希望能给大家提供一些思路. 数仓:BI背后的引擎(或管道) 数据仓库:从字面意义上即数据的仓库,是

分享各个领域的一些格言

★关于“人生” 一个人的价值, 在于他贡献了什么, 而不在于他获得了什么.——爱因斯坦 我从来不把安逸和快乐看作是生活目的本身, 对这种伦理基础, 我称之为'猪栏的理想'.——爱因斯坦 未经反思自省的人生不值得去过The unexamined life is not worth living.——苏格拉底 (哲学之父) 大多数人在20到30岁就已经过完自己的一生.一过了这个年龄段, 他们就变成自己的影子, 以后的生命只是在不断重复自己.——<约翰.克里斯朵夫>罗曼.罗兰 活着, 如同生命最后一

纪念快播君

著作权归作者所有. 商业转载请联系作者获得授权,非商业转载请注明出处. 作者:关原不嫉 链接:https://www.zhihu.com/question/25523184/answer/30992662 来源:知乎 记念快播真君:  自年开,便有传闻快播要被查掉,当时周事繁琐,也没特别的惦念此事,因为我用的时候还是可用的,盗版电影也可看,扶桑佳作也是可看的,只是在有些网站会时常提醒我升级下载,或是根据相关法律法规什么的一些话而不能正常播放,这也是先前的一些常事,老于跟我说过,3.5版本且不可升

从&ldquo;中产梦&rdquo;中醒来,好好打工吧

"中产"定义 自打"中产阶级/阶层"概念出现,总有人试图给出定义.搞不清何为"中产"却试图定义"中产阶级/阶层",注定是缘木求鱼. 最常用的标准是收入,如"日薪 10 美元""日薪 85 美元""一线城市家庭月收入 4 万~5 万元"等:还有资产标准,如"总资产至少在 1000 万以上""有房产无房贷""有豪车&quo

十问李开复 你造吗

李开复先生:您好,由于您的志愿是成为中国青年的导师,那么我周小平作为中国80后青年中的一员,想来也是您希望引导的众多青年当中的一个,所以有些问题我想和您当面聊聊.我们在微博上这几年来从来没有过一次争执或者骂战,所以我向您提出的问题都不会是预设立场的.我希望这会是一次心平气和的问答,而您也应该不至于不敢正面回答. 第一问:李开复先生,您为何支持对未成年少女进行公开性骚扰? 您经常说做人要有道德底线,但您的所作所为却经常突破道德底线.我们这是一个多样化的时代,全世界的价值各有不同.但在一些共同的人类

苦难是人生中必须经历的一课

苦难是动力的催化剂:苦难是一本启智的经书:苦难又是一位深沉的哲人:苦难是人生一道永远开放着绚丽花朵的风景.不经过挫折,怎知道路之坎坷:不经过磨练,怎知意志之坚强:只有在人生道路中与苦难交锋,才知苦难也是一种财富.人不是战胜痛苦的强者,便是屈服于痛苦的弱者.再重的担子,笑着也是挑,哭着也是挑.再不顺的生活,微笑着撑过去了,就是胜利.“人有悲欢离合,月有阴晴圆缺,此事古难全.”苦难在很大程度上是一种自然规律的表现,早在一千多年前,苏轼就告诉了我们这样的道理.我们对苦难应该持有的态度是正视和乐观.“真

对于程序员, 为什么英语比数学更重要? 如何学习

程序员联盟群里经常有人问: 我数学不好可以学编程吗? 我英语不好可以学编程吗? 今天就来一次性回答这两个问题. 我这些年的体会是:英语对于编程的助力比数学要大.所以要说优先级的话,首先过了英语这关再说. 当然了,很多人会有不同的意见.我这里只是说说不才的我个人的体会. 欢迎留言指教,也可以丢鸡蛋,不过记得再丢几根韭菜,我可以韭菜炒蛋- 为什么这么说呢?很简单,不少编程都不需要什么数学知识,但是英语却是避无可避. 除非你是用易语言编程(不过说实话,中文真的不适合用来写程序.英语的字母组成和特性决定