自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Codeforces 110C Lucky Sum Of Digits 暴力

点击打开链接题意:求digit和为n(n假设最后有p个4,q个7 为了最小:4排在前面,7排在后面,求出4,7个数即可4p+7q=n 枚举q,p=(n-7q)/4,数字尽量小->位数p+q尽量小,q尽量小即可. #include using namespace std;const int N=2e3+20;int n;bool flag;int main(){ w

2017-01-30 22:00:19 644

原创 Codeforces 152C Pocket Book 思维

点击打开链接题意:给出n个string,每个长度都为m(n,m由样例AAB BAA 容易发现:由于每次交换都为前缀,无论怎么交换,交换多少次,最后string中的第k个字符只可能为某一行的第k个统计cnt[k] 第k个位置的不同字符个数,计算ans=cnt[1]*..cnt[m]即可 #include using namespace std;typedef long lon

2017-01-30 18:07:04 469

原创 ARC 068E Snuke Line 区间问题+树状数组

点击打开链接题意:Bus从0出发,最多走到M(M枚举一个d,任意一个d把区间分成 M/d段,容易发现若区间长度>=d 则bus至少停在该区间内一次.如果区间长度#include using namespace std;typedef long long ll;const int N=3e5+20;int n,m,c[N];struct node{ int l

2017-01-30 17:22:15 489

原创 Codeforces 463C Gargari and Bishops 贪心+规律

点击打开链接题意:n*n格子 n同一条主对角线i-j+n相同,同一条副对角线i+j相同,先根据每个点处理出这个点被选为bishop时所能得到的值xjb贪心:先选中最大价值的f+g,由于第二个bishop的攻击范围不能与第一个bishop有重叠,把第一个bishop所攻击的坐标设为-inf,在选出次大即可 标准贪心:由于任意一个cell都不会同时被两个bishop

2017-01-26 23:08:36 403

原创 POJ 1141 Brackets Sequence 区间DP(括号匹配)

点击打开链接题意:给出string s,求添加最少括号使得string合法,并打印出解,string长度区间DP: 左右两端点做决策,分割区间做决策dp[i][j] 添加最少的括号个数使得S"i~j"合法 如果s[i]和s[j]配对'(',')'则可以转移到-> dp[i+1][j-1]或者把"i~j"分成两部分 "i..k","k+1..j" 枚举k即可  dp[i][j

2017-01-26 15:45:49 349

原创 Codeforces 490C Hacking Cypher 暴力

点击打开链接题意:把s分成两部分,左部分被a整除,右部分被b整除 不能有前导0 s位数先预处理所有被b整除的后缀位置,O(n)找到被a|前缀i 判断后缀i+1是否成立即可 #include using namespace std;const int N=2e6+20;char s[N];int a,b,n,mk[N];//b|"mk[i]~n"int t[N];//(

2017-01-25 11:59:25 354

原创 Codeforces 486C Palindrome Transformation 贪心

点击打开链接题意:给出string长度n若s[i]!=s[n-i+1] 则要修改其中一个的值,最多修改n/2次,每次花费值时固定的 则只有求出最少的移动距离即可.贪心: "1  ..p .. n/2....n" 可以看出p~n,和p~n/2~1的移动距离时一样的,则p可以只在1~n/2范围内移动,求出要修改的范围mn~mx确定移动顺序即可#include using namesp

2017-01-24 16:24:53 295

原创 Codeforces 758C Unfair Poll 暴力模拟

点击打开链接题意 n*m个座位 提问顺序从row:1 2 ...n n-1 ...2 1 ..  每行都是从1~m提问 问总共有k次提问 被问到最多,最少和在(x,y)的学生被提问的次数?1由于k较大 定row1~ n n-1 ~ 2 为一个周期,则有X=k/((n+n-1)*m)个周期,除了row1,n被访问X次以外,其余都被访问2*X次剩下k%((n+n-1)*m) 由于n,m

2017-01-20 11:34:18 609

原创 Codeforces 431C k-tree DP(拆分数)

点击打开链接题意:满k叉树,每个顶点有k条边,边的权重为1~k,现求出从根节点出发,有多少条路径,使得总权值恰好为N,并且每条路径上至少有一条权值不少于d的边。1相等于问拆分n,至少有一个加数大于d,所有加数不大于k时的方法数dp[i][0] 和为n 最大加数小于d ,dp[n][1]和为n最大加数大于d和为n时,按照其中一个加数为x(1~k)转移即可#include

2017-01-19 20:01:31 388

原创 Codeforces 478C Table Decorations 贪心(思维!!!)

点击打开链接题意:给出r,g,b三种颜色贪心:每次从数量大的颜色拿2,数量小的颜色拿1作为一张table当(a[0]+a[1])*2显然ansa[2]时,能否构造出ans张table? 或者说剩下的table为sum%3张?构造:最多sum/3张table && a[2] 2*(a[0]+a[1])>a[2]时 先贪心拿,直到a[2] 与 max(a[0],

2017-01-16 17:52:36 288

原创 Codeforces 236C LCM Challenge 数论(基础题)

点击打开链接题意:找到三个数LCM=(a*b*c)/(d1*d2)  d1为gcd(a,b) d2为gcd(ab/d1,c) nn>3:分以下两种情况若n为奇数: n-1为偶数与n,n-1都互质&&gcd(n,n-2)=1(n为奇数) 设d|n&&d|n-2 则d|2 d所以三个数两两互质 直接相乘就能得到最大的LCM若n为偶数 可得一个LCM k1=(n-1)(n-2

2017-01-16 15:23:15 455

原创 Codeforces 456C Boredom DP

点击打开链接题意:n想一想 二分贪心和构造好像都用不上 a[i]dp[i] 当前删除的最大数字为i时得到的最大得分 dp[i]=max(dp[i-2]+i*mp[i],dp[i-1]);//i被i-1间接删除 或者 亲自删除i(由dp[i]定义得dp[i]>=dp[i-1],i存在时的最大得分为dp[i-2]) #include using namespace std;

2017-01-14 18:58:08 323

原创 Codeforces 466C Number of Ways 二分

点击打开链接//题意:把数列a分成相等的三部分S(1,i-1)=S(i,j)=S(j+1,n) 求断点(i,j)的选法个数 //3*x=sum,假设当前找到pre[i-1]=x 则只要找到下标j>=i&&pre[j]=2x 的个数即可,剩下(j+1,s)=3x-2x=x; //保存pre[j]=2x的下标 当pre[i-1]==x时二分出第一个>i-1的j即可 O(nlogn)

2017-01-13 17:24:53 306

原创 Codeforces 757 C Felicity is Coming! 思维+STL

点击打开链接题意:变换是一个排列f,f[i]为把i变为f[i],(i有n(n容易发现:若x经过变换后为y 则每个gym中x个数是等于y的个数(不好算直接统计出相等的种类).->x所在的gym集合等于y所在的gym集合 (vector[i] 种类i的的gym集合 sort后即可比较)//若把能相互变换的放入一个数据结构中,则该块方法数为S!(S为该块的个数),最后每块方法

2017-01-13 12:42:01 899

原创 Codeforces 363C Fixing Typos 贪心+字符串模拟

点击打开链接题意:告诉你一个s1.不存在连续相同的三个字符。2.若有连续两个字符相同 则其之后的两个字符必须不同 (不能有xxyy)求删除最少的字符,使得字符串满足上面条件。思路:删除最少 xxyy出现则显然删除y更好 则把字符串从头到尾加入到ans中,加入时判定即可#include using namespace std;const int N=2e5+20;

2017-01-12 15:54:40 393

原创 Codeforces 322B Ciel and Flowers 规律

点击打开链接题意:有红绿蓝三种颜色的画,每种拿三朵可以组成一束花,或者各拿一朵组成花束,告诉你每种花的数目,求出可能组成最多的花束。设混合的flower个数为x时 ans[x]=x+(R-x)/3+(G-x)/3+(B-x)/3  (1容易发现x连续增加3的倍数时 即ans[x]=ans[x+3T] 即ans[]为3个一循环 取连续的三个比较出最优值即可#include usin

2017-01-11 18:31:31 538

原创 Codeforces 166C Median 暴力模拟

点击打开链接题意:n个数,nvector暴力添加x后排序,无论当前中位数小于还是大于x 添加x总能使当前中位数接近x 复杂度O(n^2logn)#include using namespace std;const int N=2e3+20;vector a;int main(){ int n,x; while(cin>>n>>x) { for(int i=0

2017-01-11 11:17:54 364

原创 Codeforces 373C Counting Kangaroos is Fun 二分+贪心

点击打开链接//题意:n个数,x可以与y配对后消失(y>=2x),求最小的剩余个数判定是否能消失x个.贪心:消失的x个肯定是前x小的,因为若前x的消失不了,则不可能消失x个 反证 若(ai,yk) i>x能匹配x对 则把ai换成aj j#include using namespace std;const int N=5e5+20;int n,a[N];bool

2017-01-10 21:14:05 289

原创 ABC 051D Candidates of No Shortest Paths 最短路(Floyd)

点击打开链接题意:n个点m条边,求不在任意两点最短路径上的边个数 n边(i,j) 在(s->t)的最短路径上的充要条件为 dist[s][i]+w[i][j]+dist[j][t]=dist[s][t]; 等式1 暴力枚举:边和s,t复杂度为O(m*n*n)因为此时 边(i,j)在s->t上 所以顶点j为s->t的中间结点 dist[s][t]=dist[s][j]+dist[j]

2017-01-09 14:11:18 548

原创 Codeforces 711D Directed Roads dfs(找环)

点击打开链接题意:给定n个点n条边(n关键:因为每个点的出边只有一个,若有u->v路径无环,则u->v为简单的路径只有n-1条边,则该路径边可以随意反转 (v的出边可能和其他边形成环)在环上的边至少反转一条即可变为无环(环变为若干条链),但不能全部翻转.#include using namespace std;typedef long long ll;const ll

2017-01-09 11:38:51 362

原创 POJ 1789 Truck History MST(水)

点击打开链接//题意:要求 sigma(d(t0,tx))最小 &&任意两个点之间均有路径//则所有点处于同一个连通分量 ,边权和最小,即求出最小生成树即可 #include #include #include using namespace std;const int N=2e3+20;int n,g[N][N];char s[N][N];int cal(int

2017-01-07 19:48:09 303

原创 POJ 1523 SPF Tarjan求无向图割点

点击打开链接参考题意:求无向联通图的割点(关节点)关节点:在无向连通图中,删除一个顶点v及其相连的边后,原图从一个连通分量变成了两个或多个连通分量,则称顶点v为割点,同时也称关节点(Articulation Point)情况1:root子结点数如果>=2,则root为割点(去掉root后,root的子树不联通)情况2:v(u的儿子)到不了u以上的结点,则去掉

2017-01-07 00:40:39 386

原创 Codeforces 711C Coloring Trees DP

点击打开链接//题意:n个数,给数字0填上(1~m),使得minimum number of contiguous groups为k的代价最小 //2,1,1,1,3,2,2,3,1,3 k=7//dp[i][j][k] 前i个数&&第i个数颜色为k时,group为j时的最小代价 //决策为a[i]是否等于a[i-1];//a[n]为0时 //相同则为dp[i][j][

2017-01-06 11:28:45 281

原创 Codeforces 454C Little Pony and Expected Maximum 简单期望

点击打开链接题意:给你一个m面的色子,投n次,求出最大点数的期望值先求最大值为i的概率=pi=E/S  S=m^n最大值为i:n次都小于等于i中-i一次都没出现 i^n-(i-1)^n  幂n#include using namespace std;typedef long long ll;const int N=2e5+20;double p[N];//p[i]:n次

2017-01-04 10:53:20 424

原创 Codeforces 750D New Year and Fireworks 暴力BFS

点击打开链接n不重复的点只有6e4个,bfs暴力模拟烟花扩散过程即可 #include using namespace std;typedef long long ll;const int N=3e2+20;struct node{ int x,y,cnt,dir;//cnt:烟花层数,dir:进入的方向 }tmp;int t[N],n;int mp[N][N];in

2017-01-02 21:43:47 390

空空如也

空空如也

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

TA关注的人

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