Rikka with Nash Equilibrium Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 524288/524288 K (Java/Others)Total Submission(s): 1251    Accepted Submission(s): 506 Problem Description Nash Equilibrium is an important concept in game theory. Ri…
Rikka with Badminton Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 524288/524288 K (Java/Others)Total Submission(s): 351    Accepted Submission(s): 219 Problem Description In the last semester, Rikka joined the badminton club. There are n s…
Rikka with Time Complexity Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 524288/524288 K (Java/Others)Total Submission(s): 448    Accepted Submission(s): 159 Problem Description Calculating and comparing time complexity for algorithms are t…
Rikka with Stone-Paper-Scissors Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 524288/524288 K (Java/Others)Total Submission(s): 1    Accepted Submission(s): 1 Problem Description Did you watch the movie "Animal World"? There is an inte…
咕咕咕了太久  多校博客直接从第三场跳到了第九场orz 见谅见谅(会补的!) 明明最后看下来是dp场 但是硬生生被我们做成了组合数专场…… 听说jls把我们用组合数做的题都用dp来了遍 这里只放了用组合数的题目 dp的还没有补(这又是一个大坑orz) 1001 Rikka with Nash Equilibrium      (hdoj 6415) 链接:http://acm.hdu.edu.cn/showproblem.php?pid=6415 题意:给一个n*m的矩阵 其中放着从1到n*m的…
题目链接 Problem Description Nash Equilibrium is an important concept in game theory. Rikka and Yuta are playing a simple matrix game. At the beginning of the game, Rikka shows an $$$n\times m$$$ integer matrix A. And then Yuta needs to choose an integer…
  Rikka with Game Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 524288/524288 K (Java/Others)Total Submission(s): 0    Accepted Submission(s): 0 Problem Description Though both Rikka and Yuta are busy with study, on their common leisure, th…
目录 题目链接 题意 思路 代码 题目链接 传送门 题意 定义\(L(a,b)\)为结点\(a\)到结点\(b\)的路径上的结点数,问有种\(pair(L(a,b),L(c,d))\)取值,其中结点\(a\)到结点\(b\)的路径与结点\(c\)到结点\(d\)的路径没有交叉. 思路 我们很容易想到要想两条路径不交叉,那么\(a,b\)与\(c,d\)必定在两棵不同的子树中,假设第一棵子树的直径位\(L1\),第二棵子树的直径为\(L2\),那么我们可以得知\([1,L1]\)必定可以与\([1…
题意: 给定一块n*m的矩形区域,在区域内有若干点,每个顶点发出一条射线,有上下左右四个方向,问矩形被分成了几个区域? 思路: 稍加观察和枚举可以发现,区域数量=射线交点数+1(可以用欧拉定理验证,但是我不会),问题就转变为统计射线交点数量 可以将四个方向的射线分开,用左右的射线去查询与多少个上下的射线相交,先考虑向左的射线A与几条向上的射线相交,设A(x,y),即求(1,x)区间内\(\le y\)的向上的射线条数,显然可以利用主席树进行维护(也可以用树状数组并且更快,但是我不会).其他情况同…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6583 大致题意是说可以花费p在字符串后添加一个任意字符,或者花费q在字符串后添加一个当前字符串的子串.问最少花费多少可以得到目标串. 一开始想到的dp,dp[i]为得到目标串的1-i的最小花费. 那么dp[i]=min{dp[i-1]+p,dp[j-1]+q},s[j~i]应该为s[1~j-1]的子串. 我们可以知道dp数组是一个单调递增的数组,用反证法可以证明:dp[i]由dp[i-1]转移就不用…
http://acm.hdu.edu.cn/showproblem.php?pid=6415 题意:将1~n*m填入一个n*m矩阵 问只有一个顶点的构造方案. 顶点的定义是:某数同时是本行本列的最大值. 题解:考虑最大的那个数,必然是顶点.然后再考虑第二大的,它只能填在上一个数所在的行列.通过这个填法,不断填下去并计数.但完全不会写程序(要分类,递归完全不会写). 后来知道是个O(n*n*m*m)的dp(搜索)orz 直播里的转移方程和代码:dp[i][j][k]代表填了i个数,j行k列已经填数…
HDU6415 Rikka with Nash Equilibrium 找规律 + 大数 由于规律会被取模破坏,所以用了java 找出规律的思路是: 对于一个n*m的矩阵构造,我先考虑n*1的构造,很容易知道它是n!种方法.然后对于n*2的矩阵构造,就是在n*1的矩阵中新加入n个元素的排列组合,当然这里面一定会有非法的情况.通过打表可以暴力的搜出5*5以内的答案,所以我就可以知道从n*1的矩阵扩展到n*2的矩阵中有多少种非法组合(n <= 5 只知道小数据).同理对于n*2扩展到n*3以后到n*…
http://acm.hdu.edu.cn/showproblem.php?pid=6415 Rikka with Nash Equilibrium Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 524288/524288 K (Java/Others)Total Submission(s): 2021    Accepted Submission(s): 857 Problem Description Nash Equilib…
抱着可能杭电的多校1比牛客的多校1更恐怖的想法 看到三道签到题 幸福的都快哭出来了好吗 1001  Maximum Multiple(hdoj 6298) 链接:http://acm.hdu.edu.cn/showproblem.php?pid=6298 签到题 但是有考了一定的思维 清北大佬两分钟写出来真的让人望尘莫及啊…… 题意是给定一个n 可以由三个正整数相加得到 同时这三个正整数又是要被n可以整除 求这三个整数相乘的最大值 如果没有 则输出-1 既然题目没有要求三个正整数不能相等 则可以…
开始逐渐习惯被多校虐orz  菜是原罪 1004  Game    (hdoj 6312) 链接:http://acm.hdu.edu.cn/showproblem.php?pid=6312 虽然披着博弈的外壳 但是也算是结论题 一开始开题的时候一看到博弈就不想写了 但是大佬们过题太快了 所以想到可能是结论题 题意:有A和B两个人可以对一个1-n的全排列进行操作 每一次都可以删去一个数和它所有质子 A和B轮流进行操作 先删光全排列为赢 A先手 给出n 判断A的输赢 因为每一次删数操作都会删去1…
#include<bits/stdc++.h>using namespace std;int n,m;int x,y;int num,cnt;int degree[100007],vis[100007],viss[400040],first[100007];vector<int>jidian,road[100007];struct node{    int v,next;}xu[400040];void init()//初始化{    num=0,cnt=1;    memset(…
Vacation 题目传送门 update(O(n)) 看了那个O(n)的方法,感觉自己想的那个O(nlogn)的好傻,awsl. 0车最终通过停车线的时候,状态一定是某个车堵住后面的所有车(这个车也可以是0车).所以我们要找的就是那个把后面所有都堵住的最前面的车x,x车没有被别的车堵住,从头到尾都按照初始速度行驶,当0车到停车线时,这x车走过的距离d = s_x + 0到x车的车身长度和,时间为d/v_x. 我们假设所有的车都是车x,求出时间,其中最大时间即为答案.因为如正确的时间t = (车…
Keen On Everything But Triangle 题目传送门 解题思路 利用主席树求区间第k小,先求区间内最大的值,再求第二大,第三大--直到找到连续的三个数可以构成一个三角形.因为对于一组数,如果不能构成三角形,就小的就是斐波那契数列,因为数的范围在10^9内,所以不会超过50个数,也就是说,我们之间这样暴力地查询,查询次数不会超过50,肯定能找到结果. 代码如下 #include <bits/stdc++.h> #define INF 0x3f3f3f3f using nam…
Longest Subarray 题目传送门 解题思路 本题求一个最大的子区间,满足区间内的数字要么出现次数大于等于k次,要么没出现过.给定区间内的数字范围是1~c. 如果r为右边界,对于一种数字x,满足条件的左边界l的范围是r左边第一个x出现的位置+1(即这段区间内没有出现过x,如果x在1~r内都没有出现过,那么1~r自然都是l的合法范围),以及1到从右往左数数第k个x出现的位置(即这段区间内的x出现次数大于等于k).所以我们只要找到同时是c种数字的合法左边界的位置中最小的,然后枚举所有的i作…
题意: 构造一个n*n 的 01 矩阵, 0 < n < 2001,  矩阵需要满足没有一个子矩阵的4个角都是1,并且矩阵内1的个数至少有85000个. 题解:数论构造题 参考From 代码: #include<bits/stdc++.h> using namespace std; #define Fopen freopen("_in.txt","r",stdin); freopen("_out.txt","w&…
Naive Operations Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 502768/502768 K (Java/Others)Total Submission(s): 2114    Accepted Submission(s): 915 Problem Description In a galaxy far, far away, there are two integer sequence a and b of le…
Game Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 184    Accepted Submission(s): 132 Problem Description Alice and Bob are playing a game.The game is played on a set of positive integers from…
题目链接 传送门 题意 有\(n\)个士兵,要你给他们分配职业.有\(m\)对关系,对于某一对关系\(u,v\),如果同为勇士则总能力增加\(a\),同法师则增加\(c\),一个勇士一个法师增加\(\frac{a}{4}+\frac{c}{3}\),要你求最大的总能力. 思路 这位大佬的博客讲的很详细,大家可以看这篇博客- 在他的基础上加了点优化:源与某个点可能会连很多条边,因此我们可以汇总起来最后一次连边,汇同理,中间的反向边我们可以不用建\(0\)的边. 代码实现如下 #include <s…
题目链接 传送门 题意 要你找一个最长的区间使得区间内每一个数出现次数都大于等于\(K\). 思路 我们通过固定右端点考虑每个左端点的情况. 首先对于每个位置,我们用线段树来维护它作为\(C\)种元素的左端点的可行性. 对于每个元素我们用\(vector\)存下它出现的所有下标. 枚举右端点\(i\),对于\([i,i]\)这区间除去\(a_i\)这个数外其他元素都没有出现过,那么它作为左端点的可行性为\(C-1\):对于\(a_i\)上一次出现的位置\(pos\),则\([pos+1,i-1]…
题目链接 传送门 思路 首先我们对\(a\)正反各跑一边\(LIS\),记录每个位置在前一半的\(LIS\)中应该放的位置\(ans1[i]\),后一半的位置\(ans2[i]\). 对于字典序最小的方案,我们找到第一个峰值,然后往前遍历.在\(i\)这个位置,如果它在\(LIS\)中放的位置是\(pos\),那么我们先看当前放在\(pos+1\)的值是否比它大,大的话就说明这个位置一定比前面放过在\(pos\)这个位置的更优(因为字典序更小,且\([1,i]\)一定可以放满\([1,pos-1…
题目链接 传送门 题意 给你一个字符串,要你构造一个长为\(k\)的子串使得每个字母出现的次数在\([L_i,R_i](0\leq i\leq26)\)间且字典序最小. 思路 做这种题目就是要保持思路清晰,博主就是因为写的时候没有想清楚写了一晚上\(+\)一个早上-- 首先我们对于第\(i\)个位置有如果这个位置可以摆放,那么\(L[s[i]-'a'],R[s[i]-'a'],k\)均减少\(1\),如果不能摆放(条件为:\(\sum\limits_{i=0}^{26}L[i]\leq tot-…
题目链接 传送门 题意 有\(n+1\)辆车要过红绿灯,告诉你车的长度.与红绿灯的起点(题目假设红绿灯始终为绿).车的最大速度,问你第\(0\)辆车(距离最远)车头到达红绿灯起点的时间是多少(每辆车最多和前面的车无缝衔接). 思路 比赛的时候没啥思路,后来仔细一想,其实对于第\(0\)辆车的最终状态只有两种状态: 前面的车都不影响它的时间(也就是一直都不会与前面的车衔接),此时时间为\(\frac{s_0}{v_0}\): 与前面的车无缝衔接,那么由于第\(0\)辆车的车头会在数轴\(0\)这个…
题目链接 传送门 题意 初始时有\(n\)个数,现在有\(q\)次操作: 查询\([l,r]\)内选择一些数使得异或和最大: 在末尾加入一个数. 题目强制在线. 思路 对于\(i\)我们记录\([1,i]\)每个基底最靠近\(i\)的位置和这个位置的值,然后查询时看\(r\)这个位置记录的每个基底的位置是否大于等于\(l\),如果大于等于那么\([l,r]\)内一定有一个位置可以贡献这个基底,然后比较答案大小即可. 本题和\(cf1100F\)一样的写法只是多了个操作而已. 代码实现如下 #in…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6582 题意:删掉边使得1到n的最短路改变,删掉边的代价为该边的边权.求最小代价. 比赛时一片浆糊,赛后听到dinic瞬间思维通透XD 大致做法就是先跑一遍最短路,然后再保留所有满足dis[i]+w==dis[j]的边,在这些边上跑最小割(dinic). 代码写的异常丑陋,见谅QAQ #include<iostream> #include<cstdio> #include<cstd…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6602 题目大意为求最长的区间,满足C种数字在区间内要么不出现,要么出现的次数都不小于K. 大致的分析一下,可以知道对于以R为右端点的区间来说,每种颜色的合法区间在[1~出现k次]和(上一次出现~下一次出现).PS:[]为闭区间,()为开区间. 所以可以线段树维护一下,枚举区间右端点,然后在线段树上将上一次更新这种颜色的操作撤销(上次是+1,则当前-1),然后再次更新(+1). 对于每个区间右端点,最…