摘要: 有一个邮递员要送东西,邮局在结点1。他总共要送N 1样东西,其目的地分别是2~N。由于这个城市的交通比较繁忙,因此所有的道路都是单行的,共有M条道路,通过每条道路需要一定的时间。这个邮递员每次只能带一样东西。求送完这N 1样东西并且最终回到邮局最少需要多少时间。 很容易发现我们要求 $\sum_{j 阅读全文
posted @ 2019-08-27 10:09 End_donkey 阅读(223) 评论(0) 推荐(0) 编辑
摘要: 题意 给出n n 的图,A为起点,B为终点, 为障碍,.可以行走,问最少需要拐90度的弯多少次,无法到达输出 1。 解析 思路:构造N M 4个点,即将原图的每个点分裂成4个点。其中点(i,j,k)表示在(i,j)时人的方向是k,然后对于两个点(i,j,k)和(i,j,kk),如果k和kk是两个旋转 阅读全文
posted @ 2019-08-27 10:00 End_donkey 阅读(130) 评论(0) 推荐(0) 编辑
摘要: T组数据,给出N,求出N!最右边非零的数。 对于30%的数据,N using namespace std; int T,n,ans,mod,rest,x; bool flag; const int v[10]={1,1,2,6,4,4,4,8,4,6}; char s[3000]; int a[30 阅读全文
posted @ 2019-08-27 09:58 End_donkey 阅读(163) 评论(0) 推荐(0) 编辑
摘要: 纯数论 30分:纯暴力,直接模拟判断t秒后,判断hp是否小于0 60分: atk =h,就是一炮一个,那么军队会在min(n,t)秒之后停止攻击,那么总伤害就是a[n+(n 1) +(n 2)+........(n min(n,t)+1) 等差数列求和d=a(2n min(n,t)+1) (min( 阅读全文
posted @ 2019-08-27 09:55 End_donkey 阅读(121) 评论(0) 推荐(0) 编辑
摘要: 共t条街对于每一条街上有n个店铺(n可能不相同),每次只能选两端第一个营业的店铺采购,采购第i个店铺会获得幸福度ai,采购完后,这个店铺和它相邻的店铺便会关门,问最大幸福度? 考场想了一下dp,一开始想一维但发现不好处理,二维参数也没有想出来,于是便开始了我的暴力瞎搞之旅,我随手写了几个例子发现对于 阅读全文
posted @ 2019-08-27 09:52 End_donkey 阅读(186) 评论(0) 推荐(0) 编辑
摘要: 题意 跑两边spfa的水题,注意判断有人才取最大值 代码 cpp include using namespace std; inline int read(){ int x=0,f=1; char ch=getchar(); while(ch'9'){ if(ch==' ') f= 1; ch=ge 阅读全文
posted @ 2019-08-27 09:47 End_donkey 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 题意 1到n个自然数中选k个自然数要求两两不相邻,问有多少种方法,模m eg(1 3 5 ) 又是一道打表规律题,正常解法dp可以通过前缀和优化到O(N K)。另外我们可以重新定义F[I,J]表示从1到I中选择J个不连续数的方案数。通过考虑I选还是不选来进行状态转移。 1.如果不选I:则方案数为F[ 阅读全文
posted @ 2019-08-27 09:45 End_donkey 阅读(147) 评论(0) 推荐(0) 编辑
摘要: T3 "颜色" 100/100 对于这题由于数据范围小,有一种神奇的做法,我们可以把每个值随机赋值,但是保证相同颜色的和为0,就代表消去了这个颜色,我们只要取寻找合法区间就行,合法区间的寻找只要找相同前缀和就行,因为相同前缀和之间这一段为0,也就代表这一段是合法区间。 代码 cpp include 阅读全文
posted @ 2019-08-27 09:42 End_donkey 阅读(116) 评论(0) 推荐(0) 编辑
摘要: 一道最短路的题,找一个买入和卖出相差最高的点即可,我们先以1为起点跑spfa,d1[x]不再表示距离而表示能够经过权值最小的节点的权值即 我们在建反图,对于n点再跑spfa,算出最大值即 cpp if(d2[y] using namespace std; const int N=100010,M=5 阅读全文
posted @ 2019-08-27 09:39 End_donkey 阅读(138) 评论(0) 推荐(1) 编辑
摘要: 题意 给定一个长度为N的数列A,以及M条指令 (N≤5 10^5, M using namespace std; const int maxn=500010; struct node{ int l,r; long long data; } t[maxn 4]; long long a[maxn],b 阅读全文
posted @ 2019-08-27 09:38 End_donkey 阅读(334) 评论(0) 推荐(0) 编辑