- 2023-04-28Gangsters UVA - 672
一家饭店,有一扇大小会变得门,变化范围为[0,k]。每过一单位时间你可以让门的大小+1,-1,或者不变。客人会在不同的时间来吃饭,但是如果门的大小和他们希望的值不一样,他们就不会进来并且直接消失。吃饭要花钱,现在问饭店最多能赚多少钱。 F[i][j]=max(F[i-1][j]+v,F[i-1][j-1
- 2023-04-26 Hyper-drive UVA - 10542
题意:给定一些个d维的方块,给定两点,求穿过多少方块 转化为(0,0)到(a,b)先考虑二维的 然后容斥原理#include<iostream>#include<algorithm>#include<cstring>#include<cmath>usingnamespacestd;constintN=103;#defineintlonglonginta[N],b[N],n;int
- 2023-04-25 Period UVA - 1371
题意:给两个串A,B。现在把B串分为若干个部分,对每一个部分进行操作将其变为一个A串,代价为每部分操作次数的最大值求最小代价 #include<iostream>#include<algorithm>#include<cstring>usingnamespacestd;constintN=5003,M=N;#defineintlonglongconstinti
- 2023-04-24Movie collection UVA - 1513
有n个影碟,标号为1~n,位置为0~n-1,每次取出一个影碟看完后,将其放在最前面(标号为0处),问每个影碟取出前,其位置之前有多少个影碟 开2倍数组,"i放置前面"这个操作add(i,-1),add(newi,1) #include<iostream>#include<cstring>#include<algorithm>#include<vector>usingn
- 2023-04-21 Counting Rectangles UVA - 10574
给出n个点。问选出4个点作为定点,能够组成多少个平行与坐标轴的矩形。 点按照x排序 n^2挑选出垂直x轴的线段,按照y1排序 #include<iostream>#include<cstring>#include<algorithm>#include<vector>usingnamespacestd;constintN=1e5;structT{ intx
- 2023-04-19Investigating Div-Sum Property UVA - 11361
定问在[A,B]中,有多少个整数本身能被m整除,各个数位上数字之和也能被m整除? #include<iostream>#include<cstring>#include<vector>usingnamespacestd;vector<int>a;intm,f[40][105][105][2];intdfs(intx,intv1,intv2,intflg){ if(x<0) retur
- 2023-04-18UVA11806 Cheerleaders
你有一个n×m的网格图,现在你要将K个人放在网格中,满足一下条件:网格图的四个边都至少有一个人。每个格子上不能有两个人。每个人必须都有位置。注意:四个角的人可以同时算作在两个边上 容斥原理 J=0时就是allAnswer#include<iostream>#include<cstri
- 2023-04-17Again Prime? No Time. UVA - 10780
给定m,n,求最大的k使得m^k∣n! 分解质因数 #include<iostream>#include<cstring>#include<sstream>usingnamespacestd;constintN=1e4+20;constintinf=1e9;intn,m,a[N],b[N];intprime[N],tot,vis[N];voidinit(inttop){ for(
- 2023-04-11 Zeros and Ones UVA - 12063
给出n、k(n≤64,k≤100),有多少个n位(无前导0)二进制数的1和0一样多,且值为k的倍数? f[i][j][k] #include<iostream>#include<cstring>#include<cmath>#include<algorithm>usingnamespacestd;#definelllonglongintn,m;llf[102][102][102];vo
- 2023-04-11Divisors UVA - 294
求区间[L,R]的整数中哪一个的正约数最多。 一个数因数分解后,它的约数Cnt=(a[j]+1)的乘积,j是每个因数的个数 #include<iostream>#include<cstring>#include<cmath>#include<algorithm>usingnamespacestd;constintM=1e5+30;#defineintlonglo
- 2023-04-10Magical GCD UVA - 1642
对序列A, 求(j-i+1)*gcd(i,i+1,...j)最大值 G(i)=gcd(G[i-1],a[i]) 即前缀值不升维护1~j-1可能的i 值(logn个) O(n*log^2#include<iostream>#include<map>#include<cmath>#include<algorithm>usingnamespacestd;constintN=
- 2023-04-10poj 3090 Visible Lattice Points
#include<iostream>#include<algorithm>usingnamespacestd;constintM=1e6;intvis[M+4],P[M+4],cnt;intfi[M+4];voidshai(inttop){ cnt=0; fi[1]=1; for(inti=2;i<=top;i++){ if(vis[i]==0){ P[++cnt]=i; fi[i]=i-1;
- 2023-04-09Pole Arrangement uva1638
有高度分别为1到n的n根杆子排成一行。如果你从左侧或右侧看这些杆,较小的杆被较高的杆遮挡。给出杆子的数量n,从左能看到的杆子数量L,从右能看到的杆子数量R,求杆子有多少种排列方式 考虑高度1~n的柱子,把高度1的插入2~i的某个排列中转移f[i][j][k]=f[i-1][j-1][k]+f[i-
- 2023-04-09比赛名次 Race uva12034
两人赛马,最终名次有3种可能求n人赛马时最终名次的可能性的个数#include<iostream>#include<cstring>#include<algorithm>#include<set>usingnamespacestd;#definemod10056intc[1002][1002],n,f[1002];voidinit_c(){ inti,j; c[1][1]=1; for(i=0;i<
- 2023-04-04Hot Start Up (easy version) CF1799
你有两个CPU,n个程序(m个类型)要运行。在不同条件下程序运行的时间不同,但连续运行的时间满足小于等于在不连续状态下运行的时间。 #include<iostream>#include<cstring>#include<queue>usingnamespacestd;constintN=5002;#defineintlonglong#definei
- 2023-03-08P2375 [NOI2014] 动物园
求num[i],表示1~i前缀的合法子串个数(满足前后缀相等,且不重合 #include<iostream>#include<cstring>usingnamespacestd;constintN=1e6+3,mod=1e9+7;
- 2023-03-04acwing 297 赤壁之战
给定一个长度为n的序列,求它有多少个长度为m的严格递增子序列。 f[i][j]+=f[i-1][k](a[k]<a[i],k<i) 优化:维护前缀和,根据a[k]<a[i] ,以a[]为下