是男人就过八题A_A String Game题解】的更多相关文章

题意 给一个字符串\(s\),和\(n\)个子串\(t[i]\),两个人博弈,每次取出一个串\(t[i]\),在后面加入一个字符,保证新字符串仍然是\(s\)的子串,无法操作的人输. 分析 n个子串,类比于n堆石子,如果把子串\(t[i]\)在后面加若干字符能生成的子串看出一个状态,用一个数表示,那每次状态的变化,就类比于对一堆石子取走若干个,无法操作,就类比于没有石子可以取. 多堆取石子游戏的做法就是把每堆石子的SG值(sg(x)=x)异或起来,不为零就先手赢,否则后手赢. 所以可以将题目转化…
http://poj.org/problem? id=1741 Description Give a tree with n vertices,each edge has a length(positive integer less than 1001).  Define dist(u,v)=The min distance between node u and v.  Give an integer k,for every pair (u,v) of vertices is called va…
这是楼教主的男人八题之一.很高兴我能做八分之一的男人了. 题目大意:求有n个顶点的连通图有多少个. 解法: 1.  用总数减去不联通的图(网上说可以,我觉得时间悬) 2.    用动态规划(数学递推).网上讲的方法我觉得非常难懂,但好像也没有更好的表示.我就说一下吧: 用dp[i]表示i个顶点时的连通图的总数. 考虑将1号点去除后,2号点所在的联通块.设此联通块有k个点,则这块共有C(n-2,k-1)种取法. 回过头来看刚开始的图.可以把图分成两块,一是上述联通块,其余的另一块(此块也一定联通)…
前言 大名鼎鼎的男人八题,终于见识了... 题面 http://poj.org/problem?id=1742 分析 § 1 多重背包 这很显然是一个完全背包问题,考虑转移方程: DP[i][j]表示用前i种硬币能否取到金额j,ture表示可以,false表示不行. 则有 DP[i][j] = DP[i - 1][j] | DP[i - 1][j - k * Ai], 0 ≤ k ≤ Ci, j - k * Ai ≥ 0 这是一个O(N3)的算法,考虑到数据范围1 ≤ N ≤ 100, M ≤…
[POJ1741][男人八题]树上的点对 ★★★ 输入文件:poj1741_tree.in 输出文件:poj1741_tree.out 简单对比 时间限制:1 s 内存限制:256 MB [题目描述] 给一棵有n个节点的树,每条边都有一个长度(小于1001的正整数). 定义dist(u,v)=节点u到节点v的最短路距离. 给出一个整数k,我们称顶点对(u,v)是合法的当且仅当dist(u,v)不大于k. 写一个程序,对于给定的树,计算有多少对顶点对是合法的. [输入格式] 输入包含多组数据. 每…
这道题是利用OpenCV例子程序里自带的人脸检测程序,做点图像的复制操作以及alpha融合. 说明:人脸检测的程序我参照了网上现有的例子程序,没有用我用的OpenCV版本(2.4.5)的facedetect.c,人脸检测部分是一个月前写的程序,这次做了点改动,以前的部分注释了起来. 代码: #include <opencv/cv.h> #include <opencv/highgui.h> #include <opencv_libs.h> #include <st…
原文:经典算法题每日演练--第八题 AC自动机 上一篇我们说了单模式匹配算法KMP,现在我们有需求了,我要检查一篇文章中是否有某些敏感词,这其实就是多模式匹配的问题. 当然你也可以用KMP算法求出,那么它的时间复杂度为O(c*(m+n)),c:为模式串的个数.m:为模式串的长度,n:为正文的长度,那 么这个复杂度就不再是线性了,我们学算法就是希望能把要解决的问题优化到极致,这不,AC自动机就派上用场了. 其实AC自动机就是Trie树的一个活用,活用点就是灌输了kmp的思想,从而再次把时间复杂度优…
早上7点起床,又写了一篇小说发在了起点网上,有兴趣的可以看看.点击这里 忙完后,继续练习,刚开始发现自己答题的速度有些慢,可能是因为对于html,javascript知识不是很精通,但是话又说回来,谁又能一开始就将所有的知识一下子就掌握的很熟练呢? 第六题. 题目: function escape(s) { // Slightly too lazy to make two input fields. // Pass in something like "TextNode#foo" va…
[是男人就过8题--Pony.ai]Perfect N-P Arrays 题目大意: 一棵\(n(\sum n\le5\times10^6)\)个结点的树,每个结点都有一个括号.求树上一个合法的括号序列使得若将'('当成\(1\),')'当成\(-1\).该序列最大前缀和最大,输出最大前缀和. 思路: 由于括号序列前缀和是连续的,所以我们可以把括号序列任意时刻前缀和\(\ge 0\)的限制给去掉.两遍树形DP求出从一个点出发最大/最小前缀和.绝对值取\(\min\)后即为经过这个点的最大答案.注…
因为灵巧实在太弱辽不得不做点noip续下命QQAQQQ 2018 积木大赛/铺设道路 傻逼原题? 然后傻逼的我居然检查了半天是不是有陷阱最后花了差不多一个小时才做掉我做过的原题...真的傻逼了我:( #include<bits/stdc++.h> using namespace std; #define ll long long #define rp(i,x,y) for(register ll i=x;i<=y;++i) +; ll n,d[N],ans; inline ll read…