![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
hdu
wwt9b15bs
这个作者很懒,什么都没留下…
展开
-
【题解】hdu2894 DeBruijin 欧拉回路
题目链接没有按照标程那样写#include<cstdio>#include<cstring>const int N=2050;int k,n,num[N],vis[N];bool dfs(int u,int pos){ if(vis[u])return false; if(pos==n)return true; num[pos]=u&1;...原创 2018-10-23 07:53:51 · 221 阅读 · 0 评论 -
【题解】hdu5975[2016ACM/ICPC亚洲区大连站-重现赛](2018-07-24校赛 树状数组 C)树状数组
题目链接 考察树状数组原理#include&lt;cstdio&gt;typedef long long ll;ll lowbit(ll x){ return x&amp;(-x);}ll query(ll x){ ll ans=0,tmp=1; for(ll i=0;tmp&lt;=x;i++) { ans+=(x/tmp-x/(...原创 2018-09-07 07:15:15 · 198 阅读 · 0 评论 -
【题解】hdu4970(2018-07-24校赛 树状数组 B)树状数组
题目链接 树状数组区间修改区间查询#include&lt;cstdio&gt;#include&lt;cstring&gt;typedef long long ll;const int N=1e5+10;ll sum1[N*2],sum2[N*2],n;ll lowbit(ll x){ return x&amp;(-x);}void add(ll x,ll v){...原创 2018-09-07 07:15:08 · 106 阅读 · 0 评论 -
【题解】hdu4325(2018-07-24校赛树状数组 A) 树状数组+离散化+二分
题目链接 把时间排序后离散化再操作(又是手动去重手动二分查找)#include&lt;cstdio&gt;#include&lt;cstring&gt;#include&lt;algorithm&gt;using namespace std;const int N=1e5+10;int sum[N*2];int q[N];//询问 int n,m;int maxn;//实际时...原创 2018-09-07 07:15:03 · 144 阅读 · 0 评论 -
【题解】hdu1541(2018-07-23校赛 树的重心-字典树-tree dp入门-树状数组入门 F)树状数组
题目链接 树状数组入门#include&lt;cstdio&gt;#include&lt;cstring&gt;const int N=4e4;int sum[N],a[N],n;int lowbit(int x){ return x&amp;(-x);}int query(int x){ int ans=0; while(x&gt;0) {...原创 2018-09-07 07:14:36 · 111 阅读 · 0 评论 -
【题解】hdu1166(2018-07-22校赛 字典树-树的重心-树状数组 C) 树状数组
题目链接 树状数组入门题//树状数组 #include&amp;lt;cstdio&amp;gt;#include&amp;lt;cstring&amp;gt;const int N=5e4+10;int c[N*2],n;char s[10];int lowbit(int x){ return x&amp;amp;(-x);}void add(int x,int v){ while(x&a原创 2018-09-07 07:14:42 · 94 阅读 · 0 评论 -
【题解】hdu1542(2018-07-29校赛 线段树-扫描线)线段树+离散化+扫描线
题目题目链接 参考了大佬博客,讲的很清楚。#include&lt;cstdio&gt;#include&lt;cstring&gt;#include&lt;algorithm&gt;using namespace std;#define _rep(i,a,b) for(int i=(a);i&lt;=(b);i++)#define _for(i,a,b) for(int i原创 2018-09-09 07:21:31 · 184 阅读 · 0 评论 -
【题解】hdu5692(2018-07-28校赛 线段树入门2 D)线段树+dfs序
题目题目链接#pragma comment(linker, "/STACK:1024000000,1024000000")#include&lt;cstdio&gt;#include&lt;cstring&gt;#include&lt;algorithm&gt;using namespace std;#define lc o&lt;&原创 2018-09-08 06:54:18 · 170 阅读 · 0 评论 -
【题解】hdu4864 贪心
题目链接#include&lt;cstdio&gt;#include&lt;cstring&gt;#include&lt;algorithm&gt;using namespace std;typedef long long ll;#define _rep(i,a,b) for(int i=(a);i&lt;=(b);i++)const int N=1e5+10;int n,m原创 2018-09-04 10:43:18 · 129 阅读 · 0 评论 -
【题解】hdu4699 对顶栈
题目链接 对于I x 操作: 1.把x插入栈A; 2.更新sum[pa]=sum[pa-1]+a[pa]; 3.更新f[pa]=max(f[pa-1],sum[pa])。 对于D操作,把A的栈顶出栈。 对于L操作,弹出A的栈顶,插入到B中。 对于R操作: 1.弹出B的栈顶,插入到A中。 2.更新sum[pa]=sum[pa-1]+a[pa]; 3.更新f[pa]=max(f[p...原创 2018-08-27 15:53:45 · 216 阅读 · 0 评论 -
【题解】UVA1645(同hdu4472)[ACM/ICPC 2012 Asia Chengdu Regional Contest].Count 递推
题目链接 hdu uva n结点树,除去根结点,有n-1个结点,根结点的每棵子树需要完全相同,所以根结点的子树个数k,满足(n-1)%k==0。然后就可以递推打表了。#include&lt;cstdio&gt;const int N=1010;const int mod=1e9+7;int d[N];void Init(){ d[0]=0;d[1]=1; for(...原创 2018-08-22 07:51:35 · 193 阅读 · 0 评论 -
【题解】hdu1556(2018-07-24校赛 树状数组D/2018-07-27校赛 线段树入门A)树状数组/线段树
题目链接 树状数组区间修改单点查询#include&lt;cstdio&gt;#include&lt;cstring&gt;const int N=1e5+10;int d[N],sum[N];int n;int lowbit(int x){ return x&amp;(-x);}void add(int x,int val){ while(x&lt;=...原创 2018-09-07 07:15:42 · 132 阅读 · 0 评论 -
【题解】hdu1264(2018-07-29校赛 线段树扫描线 B)线段树+扫描线+离散化
题目题目链接#include&lt;cstdio&gt;#include&lt;algorithm&gt;using namespace std;typedef long long ll;#define lc o&lt;&lt;1#define rc o&lt;&lt;1|1const int N=1e5+10;int hx[N&lt;&a原创 2018-09-09 07:22:05 · 214 阅读 · 0 评论 -
【题解】hdu5693 D Game 区间DP
题目链接区间DP好题,把区间DP的基本操作都用上了。(状态转移方程很多,见代码吧)#include<cstdio>#include<algorithm>#include<cstring>#include<map>using namespace std;const int N=310;int t,n,m,a[N],d,dp[N][...原创 2018-10-17 08:31:59 · 189 阅读 · 0 评论 -
【题解】hdu3949 XOR 高斯消元
题目链接Problem DescriptionXOR is a kind of bit operator, we define that as follow: for two binary base number A and B, let C=A XOR B, then for each bit of C, we can get its value by check the digit...原创 2018-09-12 06:22:47 · 155 阅读 · 0 评论 -
【题解】hdu2689 Sort it 树状数组
题目链接DescriptionYou want to processe a sequence of n distinct integers by swapping two adjacent sequence elements until the sequence is sorted in ascending order. Then how many times it need. F...原创 2018-09-17 09:23:35 · 169 阅读 · 0 评论 -
【题解】hdu4578(2018-07-27校赛 线段树入门 C)复杂的线段树操作
题目题目链接 记得比赛时没有做出来,应该是去学了某个大佬的题解,但是已经找不到原作者了。#include&lt;cstdio&gt;#define lc (o&lt;&lt;1)#define rc (o&lt;&lt;1|1)#define mid (l+r&gt;&gt;1)const int N=1e5+5;const int mod=10007;typ原创 2018-09-08 06:54:10 · 226 阅读 · 0 评论 -
【题解】hdu4027(2018-07-27校赛 线段树入门 B)线段树
题目题目链接#include&lt;cstdio&gt;#include&lt;cmath&gt;#include&lt;cstring&gt;#include&lt;algorithm&gt;using namespace std;#define lc (o&lt;&lt;1)#define rc (o&lt;&原创 2018-09-08 06:54:06 · 176 阅读 · 2 评论 -
【题解】hdu4417[2012 ACM/ICPC Asia Regional Hangzhou Online] (2018-07-28校赛 线段树入门2 A)主席树
题目题目链接#include&lt;cstdio&gt;#include&lt;algorithm&gt;using namespace std;const int N=5e6+10;int a[N],b[N],rt[N],ls[N],rs[N],sum[N];int t,sz,tot,ca,n,m;void build(int &amp;o,int l,int r){...原创 2018-09-09 07:22:51 · 195 阅读 · 0 评论 -
【题解】hdu2642(2018-07-25校赛 树状数组-最值-二分-二维G)二维树状数组
题目链接#include&lt;cstdio&gt;#include&lt;cstring&gt;#include&lt;algorithm&gt;using namespace std;const int N=1e3+10;int a[N][N],vis[N][N];inline int lowbit(int x){ return x&amp;(-x);}void原创 2018-09-08 06:53:42 · 177 阅读 · 0 评论 -
【题解】hdu1892(2018-07-25校赛 树状数组-最值-二分-二维 F)二维树状数组
题目链接 二维树状数组模板题#include&lt;cstdio&gt;#include&lt;cstring&gt;#include&lt;algorithm&gt;#include&lt;iostream&gt;using namespace std;const int N=1e3+10;typedef long long ll;ll sum[N][N];原创 2018-09-08 06:53:37 · 134 阅读 · 0 评论 -
【题解】hdu2430(2018-07-25校赛树状数组-最值-二分-二维 B)单调队列
题目链接 (我一直以为自己以前没写过单调队列的题来着)话说这题是出到树状数组练习题里的,我却写了个单调队列……#include&lt;cstdio&gt;#include&lt;cstring&gt;#include&lt;algorithm&gt;using namespace std;typedef long long ll;const int N=1e6+5;struct ...原创 2018-09-08 06:53:32 · 229 阅读 · 0 评论 -
【题解】hdu1754(2018-07-25校赛树状数组-最值-二分-二维 A)树状数组
题目链接 树状数组最值查询//树状数组求最大值 #include&lt;cstdio&gt;#include&lt;cstring&gt;#include&lt;algorithm&gt;using namespace std;const int N=2e5+10;int a[N],c[2*N],n;int lowbit(int x){ return x&amp;(原创 2018-09-07 07:16:03 · 180 阅读 · 0 评论 -
【题解】hdu3507 斜率优化
题目链接/*假设sum[i]表示前i项和dp[i]表示前i项需要花费的最少值则dp[i]=min((sum[i]-sum[j])^2+m+dp[j]);//j=0~i-1=&amp;gt;dp[i]=min(sum[i]*sum[i]+2*sum[i]*sum[j]+sum[j]*sum[j]+m+dp[j]);由于存在sum[i]*sum[j]和i有关的这一项,所以不可能用单调队列来维护...原创 2018-08-14 06:58:47 · 140 阅读 · 0 评论 -
【题解】hdu3555 数位DP
题目链接 问含有49的子串个数,dfs做#include&lt;cstdio&gt;#include&lt;cstring&gt;typedef long long ll;const int N=30;ll dp[N][2];ll z[N]={1};int t;ll n;int bit[N];ll dfs(int len,bool is4,bool ismax){ ...原创 2018-08-18 07:36:56 · 192 阅读 · 0 评论 -
【题解】hdu1171 01背包变形
题目链接 转化为01背包,将背包上限定为sum/2#include&lt;cstdio&gt;#include&lt;algorithm&gt;#include&lt;cstring&gt;using namespace std;int a[5010],dp[250110];int main(){ //freopen("in.txt",&quo原创 2018-08-16 07:00:57 · 128 阅读 · 0 评论 -
【题解】hdu1114完全背包
//f[j]表示扫描到第i种货币还剩j元所能产生最小价值 #include&amp;lt;cstdio&amp;gt;#include&amp;lt;algorithm&amp;gt;#include&amp;lt;cstring&amp;gt;using namespace std;#define INF 0x3f3f3f3fint p[510],w[510],f[11000];int main(原创 2018-08-15 07:11:32 · 267 阅读 · 0 评论 -
【题解】hdu2546饭卡 01背包变形
题目链接 感觉还是01背包……如果金额小于5元直接输出,否则先拿出5元买最贵的菜。f[j]表示还剩余j元时所能产生的最大花费//01背包问题//当金额小于5直接输出//金额大于等于5就先拿出5元买最贵的菜,然后变成一个01背包//f[j]表示还剩j元所能产生的最大花费 #include&lt;cstdio&gt;#include&lt;cstring&gt;#include&...原创 2018-08-16 07:00:50 · 151 阅读 · 0 评论 -
【题解】hdu2602 01背包
题目链接 01背包 可以优化空间复杂度 还可以优化常数(很迷)//01背包优化空间复杂度 #include&lt;cstdio&gt;#include&lt;cstring&gt;#include&lt;algorithm&gt;using namespace std;const int N=1e3+10;int w[N],c[N],f[N];int main(){ ...原创 2018-08-16 07:00:45 · 160 阅读 · 0 评论 -
【题解】hdu1102 最小生成树
可当做prim模板题#include&lt;cstdio&gt;#include&lt;cstring&gt;#define INF 0x3f3f3f3fint n,lowcost[110],dis[110][110],vis[110];int prim(){ int i,j,k,ans=0,tmp; for(i=1;i&lt;=n;i++)lowcost[i]=...原创 2018-08-13 07:01:51 · 259 阅读 · 0 评论 -
【题解】hdu1213 并查集
这个格式要求是假的……不理它就过了#include&lt;cstdio&gt;#include&lt;cstring&gt;#define _rep(i,a,b) for(int i=(a);i&lt;=(b);i++)int t,n,m;const int N=1e3+10;int set[N];bool vis[N];int findset(int x){ re...原创 2018-08-13 07:02:06 · 129 阅读 · 0 评论 -
【题解】hdu1878 欧拉回路+并查集
并查集判断图是否连通,再判断度数#include&lt;cstdio&gt;#include&lt;cstring&gt;#define _rep(i,a,b) for(int i=(a);i&lt;=(b);i++)const int N=1010;int set[N];int deg[N];int findset(int x){ return set[x]==x?...原创 2018-08-13 07:02:26 · 163 阅读 · 0 评论 -
【题解】hdu1285 拓扑排序
题目链接 因为要求字典序小的输出,所以采用优先队列 没注意多组数据,各种WA#include&lt;cstdio&gt;#include&lt;vector&gt;#include&lt;queue&gt;#include&lt;cstring&gt;using namespace std;#define _rep(i,a,b) for(int i=(a);i&a原创 2018-08-13 07:02:41 · 159 阅读 · 0 评论 -
【题解】hdu1024 线性DP
题目链接//dp[j]表示j在当前子序列的最优值,mk[j]表示上个子序列中1~j的dp的最大值 #include&lt;cstdio&gt;#include&lt;cstring&gt;#include&lt;algorithm&gt;#define INF 0x3f3f3f3fusing namespace std;const int N=1e6+10;int dp[N]...原创 2018-08-13 07:03:43 · 439 阅读 · 0 评论 -
【题解】hdu1698(2018-07-28校赛 线段树入门2 B)线段树区间修改
题目链接 线段树维护一段区间内钩子的颜色(材料)是否相同#include&lt;cstdio&gt;#define lc (o&lt;&lt;1)#define rc (o&lt;&lt;1|1)#define mid (l+r&gt;&gt;1)const int N=1e5+5;int s[N*4];//s为-1是杂色,s不为-1是纯色,可以直接出答案 v原创 2018-08-12 17:06:06 · 179 阅读 · 0 评论 -
【题解】hdu2191 01背包
题目链接#include&lt;cstdio&gt;#include&lt;cstring&gt;#include&lt;algorithm&gt;using namespace std;const int N=4e4+10;int a[N],dp[N],w[N];int main(){ //freopen("in.txt","r&a原创 2018-08-15 07:11:28 · 130 阅读 · 0 评论 -
【题解】hdu3535 混合背包
题目链接 思路摘抄自大佬博客 首先如果存在最优解, 我们可以互换不同工作集合的处理顺序, 依然能得到最优解. 那么我们下面只需要处理每个单独的工作集合即可. 令dp[i][j]==x表示处理完前i组工作集,所花时间&lt;=j时的快乐值为x。每得到一组工作就进行一次DP,所以dp[i]为第i组的结果。下面对三种情况进行讨论。 1.该集合内至少要选1件工作时. 要保证至少选1个第i类工作, ...原创 2018-08-15 07:11:22 · 203 阅读 · 1 评论 -
【题解】hdu2089 数位DP
题目链接 dp[i][j]表示开头是j的i位数中的吉利数个数 dp[i][j]=dp[i-1][k]其中j!=4且当j=6时k!=2 从高到低枚举哪一位比n的哪一位小#include&lt;cstdio&gt;#include&lt;cstring&gt;int dp[10][10],n,m;int bit[10];//存每一位的值 void init(){ dp[...原创 2018-08-18 07:36:51 · 242 阅读 · 0 评论 -
【题解】hdu1074 状压DP
题目链接 对于n种家庭作业,全部做完有n!种做的顺序 但是n!太大了,且对于完成作业1,2,3和1,3,2和2,1,3和3,2,1和3,1,2来说 完成它们消耗的天数一定是一样的,只是完成的顺序不同从而扣的分不同 所以可以将完成相同的作业的所有状态压缩成一种状态并记录扣的最少分即可 即:状态压缩dp 对于到达状态i,从何种状态到达i呢?只需要枚举所有的作业 假如对于作业k,i中含有作...原创 2018-08-14 06:58:08 · 151 阅读 · 0 评论 -
【题解】hdu3586 树形DP+二分
题目链接#include&lt;cstdio&gt;#include&lt;vector&gt;#include&lt;algorithm&gt;#include&lt;cstring&gt;using namespace std;const int INF=1100000;int n,m;const int N=1e3+10;struct node{原创 2018-08-17 07:23:28 · 233 阅读 · 0 评论