自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 收藏
  • 关注

原创 HDU 5936 Difference 折半枚举,暴力

/* 观察函数显然到1e10左右为负 先处理一半 再根据x 匹配另一半。*/#includeusing namespace std;#define rep(i,a,b) for(int i=(a);i<=(b);++ i)typedef long long ll;const int N = 1e5+1;multiset s[8];multiset s9;ll num[

2017-11-03 20:49:06 272

原创 hdu 6138

/* ac自动机*/#includeusing namespace std;#define ms(x) memset(x,0,sizeof(x))const int M =1e5+10;namespace AC{ int ch[M][26],de[M],f[M],vis[M],cnt=0,q[M*2]; inline void Init() {

2017-10-18 17:55:14 245

原创 Gym - 101243E Cupcakes

/* p 为贪婪的人位置 ,每个人 必须吃一个, p尽量吃。 当k <p-1 时 ,在p-1之前 结束, [p-1,sum[p-1]] 可以在p-1结束: p-1+c[p] >sum[p-1] 时,p结束, 第2轮,n轮,同理。 每轮至少吃了 n-1 +c[p] ,至多吃了sum[n] */#include#include#includeusing

2017-10-16 15:38:39 276

原创 hdu 6161 Big binary tree

/* 最长距离 1 .当前x 为根节点的最长直径 ,或 一层一层往上走 包含x的一边 ,加另一部分最长半径。 设 ans[x] 为 以x 为根节点的 最长半径, chance x, 只影响 x 和x 的祖先。 未影响的 ans 选择 最右的路径 或 从 n 往上爬 看是否爬到 x */ #include#include#include#include#

2017-10-13 22:20:47 256

原创 HDU 5514 Frogs 容斥

/* 找规律 每个ai 对应 li= gcd(M,ai) k*li k>0 为 ai 走到的位置。 ai 能走到的位置 之和 等于一个等差数列, 根据容斥 计算出所有答案 , 常规容斥 是 2(N) 的效率, ANS = a1 +a2+ a3 -a1a2 -a2a3-....+a1a2a3; 每一项都是 m 的因子,那直接计算 每个因子对应的常数 a1

2017-10-06 00:01:59 219

原创 Palindrome Function HDU - 6156 数位DP

#include #includeint dp[39][39][37]={0};int an[39][37]={0};using namespace std;int work(int x,int k){ if(x==0) return 0; int num[40]={0}; int cnt=0; while(x) { ++cnt; num[cnt] =x%k; x

2017-09-15 20:02:39 168

原创 HDU 6065 RXD, tree and sequence 分析+01背包

//给你个树,序列,分隔 序列k段, 求 每段lca 深度之和最小。 /* 求[i,j]的LCA 我们可以通过求[i,j-1] and j的LCA ; deep(lca) <=deep[i,j]; deep(lca) =min(deep(i,j-1),lca(j,j-1); 我们可以通过 lca(pair(i,i+1)) 计算出所有区间的lca; 假设 区间 3,4,5

2017-08-13 10:01:34 321

原创 Hdu6092 Rikka with Subset(2017多校第5场) 逆推背包

/* 1 1 1 3 5 5 1 1 3 1 两个序列的 B序列相同。 那我们可以选择计算 递增的序列(字典序最小) 每次求出一个数的个数 后,删去这个数可以组成的集合 之和对于的个数 那从0~m 扫描, 第一个遇到不是0的就是 单个元素 集合对应和 的个数 */#include#include#include#include#include#

2017-08-09 22:18:11 198

原创 HDU 6078 Wavel Sequence

/* LICS 变形 借鉴LICS 调整计算顺序,累计和,降低 dp 转移时的枚举量 。 */ #include#include#includeusing namespace std;#define rep(i,a,b) for(int i=(a);i<=(b);++ i)#define IF iftypedef long long ll;const int mod = 9

2017-08-07 11:06:54 308

原创 hdu 6069 Counting Divisors

/* 1~1e6的 素数个数 约 等于 1e6/ lg1e6 =78498 , 直接对区间内每个数作因数 分析会超时, 那可以枚举 质因数,再类似于 筛法,累计每个数 当前的因数和 */ #include#include#include#include#define rep(i,a,b) for(int i=a;i<=b;i++)using namespace std

2017-08-03 17:04:38 238

原创 hdu 6058 Kanade's sum

/* 计算每个数的贡献, 找到左边k-1个大于 pi的,右边 大于pi 的, 所有有贡献的区间都在这个范围内。 用链表维护位置,结束后删除pi, 从小到大 枚举,可以保证链表中的数 >=pi; */ #include#include#includeusing namespace std;typedef long long ll;const int mod =1e9+7;

2017-08-02 13:39:53 284

原创 hdu 6050 Funny Function

/* 打表找到公式,矩阵快速幂加速- - 马虎:ll 类型 写成int , 一直 wrong T.T 1-7^n / 1-7 f(n) =2^(n-1)+f(n-2) */ #include#include#include#include#includeusing namespace std;typedef long long ll;const int mod

2017-07-28 10:51:34 205

原创 Hdu 6034 细心 数组少开

/* 细心:马虎,数据少开了10倍,T了4小时- - 题意;给你一堆a-z的字符串,a-z的权值自己定,要求最后所有字符串的总和最大,按26进制展开。 很显然要统计每个字母的出现次数 —>与位置有关, 那利用数组储存次数,根据关系,表现成26进制。 再利用队列优化储存数组,提升速度 249ms. */#include #include #include

2017-07-26 21:48:56 361

原创 LA 2995 模拟+松弛排除矛盾

/* 给出正方体的6个面的观察图, 其中组成大正方形的小正方形单色。 模拟 松弛排除矛盾*/ #include#include#include#includeusing namespace std;#define REP(i,n) for(int i=0;i<n;i++) const int maxn = 10;int n;char pos[maxn][maxn][max

2017-07-24 16:27:47 219

原创 fzu 2283 模拟

/*给定目标棋盘,目标棋子。 判断两步内能否必胜。 3重for 枚举第一步,敌手第一步,第二步。 */ #include#include#include#include#includeusing namespace std;typedef long long ll;char g[6][6],ox[2],s;int check(char ss){ for(int i=

2017-07-23 16:30:07 334

原创 HDU - 5857 Median 细心+细节

/* 分类讨论不明确 */ #include#include#includeusing namespace std;#define l first#define r secondtypedef long long ll;int a[100002];pair p[2],tp;int main(){ int t; scanf("%d",&t); while(t--) {

2017-07-20 23:13:01 193

原创 Hdu 5821 Ball 贪心+模拟

/* n个数的序列,给你m次操作, 每次操作 [l,r]中的数随意调换位置, 问能否变成目标序列。 题解在最后 */ // anthor WWQ#include#include#include#include#includeusing namespace std;int n1[1005];int n2[1005];struct node

2017-07-19 09:32:03 227

原创 HDU 5812 Distance 暴力+素数打表

/* I insert x; D delect x; Q query min(d(x,y); d(x,y) =x 乘或除一个素数 变成y的最小次数; d(x,y) =ans[x/gcd(x,y)]+ans[y/gcd(x,y]; ans[i] i的素因子数; 保留之前插入 y时,每一个y因子对应的ans[y/i]值 ->因子,ans值较小, 作为查询

2017-07-16 21:21:23 221

原创 hdu 5816 Hearthstone 状压DP+记忆化搜索

???

2017-07-15 10:45:39 189

原创 hdu 5813 Elegant Construction 贪心构造

/* n个城市,对每个城市出度有要求,无环。 贪心构造,从最小的出度开始,后面的连接前面的 */#include#include#include#includeusing namespace std;struct lr{ int p; int w;}w[1234];int cmp(lr a,lr b){ return a.w<b.w;}vector >ans

2017-07-14 12:52:16 187

原创 hdu 5794

/* 打表发现路径数与坐标 表现成杨辉三角形关系 无障碍下,路径数等于相对坐标C(n,m); 有障碍下,可以减去障碍坐标对终点,其他障碍的影响。 计算大整数取mod用lucas定理;*///非标程#include#include#includeusing namespace std;#define rep(i,a,b) for(int i=(a);i<=(b);i+

2017-07-13 11:00:37 219

原创 hdu 5793 A Boring Question 数学

/* 打表找到等比求和公式 :(1-m^(n+1))/(1-m); 在素数mod 下求inc(1-m),quickm(m^(n+1), answer=quick(m^(n+1))-1 * inc(1-m).*/#include#includeusing namespace std;typedef long long ll;const int mod = 1e9+7;

2017-07-12 10:16:04 205

原创 zoj 3596 BFS+大数简单运算

/*题意: 能否找到一个数,只由0-9 中的m种数构成,而且在能整除x的情况下尽量小; 能 输出 z=x*y; 不能 输出 impossible; 解法1: 可以设置节点,节点信息用了几种数, 节点值mod x的数值, 数值的转换可以在节点之间连边,之后: 尽量小 — 找到最少的步数 不能 —走不到;*/#include#include#include

2017-07-05 19:24:36 226

原创 FZU 2108 Mod problem 数学与模拟

把括号与它后面的第一个数看成一个单元,相邻单元之间的结果可以叠加上去,单元的结果由子单元的叠加值在求幂得出.。(a*b)%c=(a%c)*(b%c)%cll Pow(ll n){ ll x=10,ans=1; ll len,mod,nl,mm; while(n) { if(n&1) { ans = (ll)ans*x; ans %= b; } x =(ll)x*x;

2017-03-21 14:22:34 436

原创 UVA 11987 Almost Union-Find 并查集的删除操作 懒惰标记

你的任务是实现一个并查集的变种。1 q p 合并 q,p 所在 集合。2 q p 把 q 移动到 p 所在集合。3 p  查询 p所在集合的元素个数与元素和。一开始想使用set 保留 每个并查集的结构,但容易tle。因为只统计根节点的answer,把删除节点保留下来不影响answer,那么可以新建立一个节点表示 p,放入集合。#include#incl

2017-03-07 20:41:11 272

原创 fzu 2109 Mountain Number 数位DP 递推

题意:Mountain Number 是奇数位的数不小于相邻偶数位的数的数字, 求一个闭区间内的山峰数有多少。如果把一个Mountain Number 首项删掉 会变成偶数位的数不小于相邻奇数位的数的数字,再删掉又变成Mountain Number。状态的转移很显然!#include#includeusing namespace std;int dp[12][10]={0},pd[12]

2017-03-04 16:36:49 255

原创 hdu 5929 Basic Data Structure 找规律 模拟

Mr. Frog learned a basic data structure recently, which is called stack.There are some basic operations of stack:∙ PUSH x: put x on the top of the stack, x must be 0 or 1. ∙ POP: throw the

2017-03-04 16:17:55 428

原创 zoj 3327 Friend Number 枚举 分类讨论 模拟

题意:一个数的友好特征是它数位上的每一位数相乘后的积,如果两个数的友好特征相同那它们是friend number. 现在让我们求比输入数据大,最接近输入数据的数字。分析:1.如果数位上有0,友好特征是0; 如果0不在最后位,答案在原有基础上加一。如果0在最后位,在零前面的数字加一。模拟。if(zero) { int z,o=len-

2017-02-15 10:42:28 515 2

原创 csu 1808 地铁 dijkstra变形+优先队列优化

1到每个点的最短时间,不仅与到相邻点的最短距离有关,而且与地铁的换乘有关. 如果用dp[ni][ci]保存数据(ni地铁站点,ci地铁班次) dp[from][ci]=min(dp[from][ci],dp[to][ci2]+abs(ci-c i2)+cost[to][from]),内存使用不理想; 所以可以保存(从1出发,最后走过这条边的最短时间); 每条边建立时可以保存对应的c,t;再利用di

2017-01-22 14:16:12 269

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除