自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 hdoj 1686 Oulipo

题目链接:Oulipo题目大意:给你一个模式串和原串,计算模式串在原串里面出现的次数题目思路:直接KMP就好#include <bits/stdc++.h>using namespace std;const int maxn = 1e6+10;int n,Next[maxn];char mo[maxn],str[maxn];int main(){ scanf("%d",&n);

2017-05-30 22:25:17 322

原创 读入挂输出挂

template <class T>inline bool scan_d(T &ret){ char c; int sgn; if (c = getchar(), c == EOF) { return 0; //EOF } while (c != '-' && (c < '0' || c > '9')) {

2017-05-30 17:22:47 525

原创 线段树大模板(区间更新,单点更新,查询区间最值等等)

#include #define MAXN 100010#define inf 0x3f3f3f3fusing namespace std;struct node{ int l,r;//区间[l,r] int add;//区间的延时标记 int sum;//区间和 int mx; //区间最大值 int mn; //区间最小值

2017-05-30 17:18:08 979 1

原创 hdoj 2571 命运

题目链接:命运题目大意:给你一个n*m的格子,如果当前格子是(x,y),下一步可以是(x+1,y),(x,y+1)或者(x,y*k) 其中k>1。然后算最后一格的价值题目思路:直接dp就好,初始化一下负数小值#include <bits/stdc++.h>using namespace std;typedef long long ll;const int inf = 0x3f3f3f3f;ll

2017-05-30 16:57:05 308

原创 hdoj 1027 Ignatius and the Princess II

题目链接:Ignatius and the Princess II题目大意:给你一个n和num,算n的第num个全排列题目思路:水体,会用next_permutation()就好#include using namespace std;int main(){ int n,num,s[100005]; while(~scanf("%d%d",&n,

2017-05-27 09:13:15 333 1

原创 hdoj 1166 敌兵布阵

题目链接:敌兵布阵题目大意:给你n个数,有这样的一些操作,将某个位置的数增加一个value,将某个位置的数减少一个value,查找某个区间x到y的区间和题目思路:首先,直接暴力是不可行的,N的数据范围为50000,然后是单点更新加区间求和,树状数组可做,然后直接套班子就好#include using namespace std;const int maxn = 5e4

2017-05-27 09:03:06 364 1

原创 swjtuoj 2390 Segment Tree

题目链接:Segment Tree题目大意:给你n个数,m代表长度,k代表最小出现的次数,n个数,需要你取长度为3的序列,比如[1,2,3],[2,3,4],但是不是数的位置,只是数而已(因为这个题意读错一发),如果这个序列里面出现的数在整个序列的个数大于等于k,就满足条件,问有多少个满足条件的区间题目思路:处理一下每个数出现的个数,然后处理一下前缀和就好,代表【1,n】这里面所有数出现的次数,直接

2017-05-18 21:21:16 460

原创 swjtuoj 2389 The Trip On Abandoned Railway

题目链接:The Trip On Abandoned Railway题目大意:给你一个长度为n的数列和一个公差d,然后m个操作,操作分为两种,第一种操作有一个x和y,代表从x开始的每个数按照等差数列开始加,x这个位置加上y,x+1这个位置加上y+d,x+2这个位置加上y+2*d,依次递推;第二种操作有一个x,代表把这个位置的数模1e9+7后输出,并且这个位置变成零题目思路:数据范围很大,所以考虑使用

2017-05-18 21:09:45 307

原创 swjtuoj 2385 Maximize The Beautiful Value

题目链接:Maximize The Beautiful Value题目大意:给你n个非递减的数,你可以将任意一个数放到它前面的位置,这个数至少得移动k步,问怎么放贡献值最大,贡献值为∑ni=1i∗ai\sum_{i = 1}^{n}{i*ai}题目思路:要使贡献值最大,我们只能移动某个数到他前面的第k个位置,我们可以知道移动到k+1位置一定贡献减小,因为当我们移动到k位置时和移动到k+1位置时只有k

2017-05-18 18:03:54 453

原创 swjtuoj 2383 Music Problem

题目链接:Music Problem题目大意:给你一堆正整数,问能不能从中间找出来一些数他们的和对3600求余为零题目思路:模拟01背包,暴力写一下就好#include <bits/stdc++.h>using namespace std;int t,n,a[100005];void solve(){ scanf("%d",&n); for(int i = 1; i <= n; i+

2017-05-18 16:26:45 454

原创 swunoj 1877 回忆的碎片

题目链接:回忆的碎片题目大意:给你一些数,每个数可以选一次,也可能不选,问不能组成的最小正整数为多少题目思路:三种思路:一、排完序后滚动着往里面扫,如果当前的值大于sum+1,就直接输出,否则继续。二、01背包。三、暴力模拟01背包,直接每扔一个数加一遍#include #include #include #include #include using name

2017-05-17 23:28:41 296

原创 西南交通大学校赛总结

哇,真的是巨烦的,xgg一直催我写总结,真的是要说一句mmp啊,本来没打算写这个总结的,因为我都没有组一个完整的队伍过去。理由先见下。(下文的西瓜和xgg都是同一个人)—————————赛前分割线———————-首先,swjtu就没打算办邀请赛的,西瓜偏偏要去蹭别人的校赛,然后swjtu的小朋友就临时邀了一发,当然,这是后话,首先是xgg找到我,说要不我们去西交大打校赛吧,巨不想去的啊,几周前就跟贵

2017-05-16 23:38:58 818

原创 swjtuoj 2381 Matrix

题目链接:Matrix题目大意:给你一个矩阵,刚开始里面的数全部是零,然后有两种操作,操作1表示将某行全部变为某个数,操作2表示将某列全部变为某个数,输出最后的矩阵题目思路:直接保存一下最后的状态就好了,列和行不同,判断一下最后保存的是行还是列就好了#include <bits/stdc++.h>#define eps 1e-6using namespace std;typedef long

2017-05-15 22:26:19 504 3

原创 swjtuoj 2380 Knapsack Problem

题目链接:Knapsack Problem题目大意:给你一个W和V然后一堆w[i]和v[i],叫你去算是不是sigma(w[i]) < W&&sigma(v[i]) < V题目思路:就随手做一下就好了,因为是校赛题,还是补一下题解#include <bits/stdc++.h>using namespace std;int n,W,D,w,d,sum1,sum2;void solve() {

2017-05-15 22:15:28 402

原创 hdoj 6030 Happy Necklace

题目链接:Happy Necklace题目大意:给你一个长度为n的字符串,只包含0和1,要求这个字符串的所有素数长度的子序列都得是1的个数比0的个数多,问长度为n的这样字符串有多少个题目思路:先xjb推公式,公式推出来是f(n) = f(n-1)+f(n-3),然后做矩阵快速幂就好。 原矩阵: ⎧⎩⎨⎪⎪600400300⎫⎭⎬⎪⎪\begin{Bmatrix} 6 & 4 & 3 \\ 0 &

2017-05-15 21:16:46 370

原创 hdoj 2037 今年暑假不AC

题目链接:今年暑假不AC题目大意:有n个电视节目,给你开始时间和结束时间,在一个时间段只能看一个电视节目,问最多可以看多少个节目题目思路:按结束时间排序后直接贪,简单题,因为我们需要节目尽可能多,所以当然我们看的每个节目越短越好,那么我们肯定选结束时间早的,然后判断一下重叠就好了#include <bits/stdc++.h>using namespace std;struct node{

2017-05-12 12:42:10 376

原创 hdoj 2570 迷瘴

题目链接:迷瘴题目大意:给你一个n,v,w,然后给你n个数p[i],代表有n种药,每种药的体积都是v,现在每种药的浓度为p[i]%,然后问你最多可以兑多少种药使得混合后药品的浓度不超过w%(药瓶不能取一部分,只能全部混合)题目思路:排一下p的序,然后按照题意走就好了,浮点有时候精度有问题,直接推一下公式:V+(p[i]v)/100为现在的药品总分量(V为之前的总药品重量),(i+1)*v为当前总体积

2017-05-12 12:35:48 345

原创 hdoj 6029 Graph Theory

题目链接:Graph Theory题目大意:给你一个n,代表这个图里面有n个点,然后点的顺序按照1-n排序,然后给出n-1个价值,代表2到n这n-1点的价值,如果为1,代表将这个点和前面所有出现的点(即1-(i-1))全部连起来,如果价值为2,不做任何操作,问是不是存在一个边集,这个边集中的每个点只被一条边访问,而且这个边集包含所有的点,问是否存在这样的边集题目思路:由于规则固定,所以图固定了。但是

2017-05-08 23:05:32 414

原创 hdoj 6027 Easy Summation

题目链接:Easy Summation题目大意:给你一个公式f(x)=ikf(x) = { i^k } ,然后给你一个n,要求你计算∑ki=0f(x)\sum_{i=0}^kf(x)k的范围是0到5,范围很小,所以可以直接模拟写就好了,这个算式的复杂度跟k有关,与n无关,听说当k很大时可以使用拉格朗日插值法#include <bits/stdc++.h>using namespace std;t

2017-05-08 20:14:08 350

原创 hdoj 6025 Coprime Sequence

题目链接:Coprime Sequence题目大意:给你n个数,这n个数的总gcd为1,删除某一个数会得到一个新的gcd,问你所有新的总gcd里面最大的是多少题目思路:傻逼题,写了半天,结果发现是个水题,直接处理某个点前缀总gcd和后缀总gcd,然后枚举每个点的时候两部分gcd一下就好#include using namespace std;int t,n,a[10

2017-05-08 17:17:20 362

原创 hdoj 6023 Automatic Judge

题目链接:Automatic Judge题目大意:给你t组数据,每组一个n一个m,代表有n道题目,m个操作,每个操作有三个关键字,一个整数代表当前交的题目,一个字符串代表交这道题的时间,一个字符串代表得到的结果,问你总共通过多少题目,总罚时是多少题目思路:直接模拟就很好,直接判断一下第一个字符是不是A就好了,不用去管那么多状态,然后AC之后就不管了。具体看代码#includ

2017-05-07 22:15:32 630

原创 丑数(某一些数可以只由给定集合的元素的幂次相乘获得)模板

举个例子,给你一个含有n个数的集合,找出质因数全部属于这个集合的第k个数,然后下面就是模板#includeusing namespace std;int main(){ int a[100100],b[110],c[110]; int k,n,i,j,mi; scanf("%d%d",&k,&n); for(i=0;i<k;i++){ scan

2017-05-06 22:39:04 364

原创 hdoj 5883 The Best Path

题目链接:The Best Path题目大意:给你n个点,m条边,然后每条边连接某两个点,可以自环,每个点有一个权值,问能不能有路径经过所有的边且只经过一次,路径的路径权值为经过的所有的点的权值依次异或起来,问最大的路径权值为多少题目思路:首先我们找的路径是一个欧拉路径,而且所有的边得都在一个集合里面,也就是给的边得两个点一定在一个集合里面,如果有不在集合的边,直接输出Im

2017-05-06 22:02:11 446

原创 hdoj 5878 I Count Two Three

题目链接:I Count Two Three题目大意:给你一个n,要求你找出大于等于n的第一个满足可以分解为2^a*3^b*5^c*d^7这种形式的数题目思路:大家都是四层循环打表的吗?我们队伍的做法是丑数的做法,也是打表,不过好像时间复杂度低一点,而且可以解决不止2,3,5,7四个数的情况,打完表直接二分去找就好了,具体看代码吧#includeusing namesp

2017-05-06 21:20:39 362

原创 hdoj 5879 Cure

题目链接:Cure题目大意:给你一个n,累加1/x^2,x从1到n,问结果是多少题目思路:直接打表发现1.64493是个极限值,然后打到100w就好(其实就几十w就到了,不过为了后面判断方便就取个100w的整数吧)然后用字符串存n就可以了,水题,卡了半天。#includeusing namespace std;typedef long long ll;double

2017-05-06 21:10:09 315

原创 hdoj 5882 Balanced Game

题目链接:Balanced Game题目大意:给你一个n,问能不能组成平衡游戏。题目思路:直接判断奇偶就好了,水题#include using namespace std;int main(){ int t,n; scanf("%d",&t); while(t--){ scanf("%d",&n); if(n%

2017-05-06 19:47:37 291

原创 fjutoj 2574 宝藏

题目链接:宝藏题目大意:给你一个n,k,tk,代表有n个房间,k条路,最大限制时间为tk,然后给你k条边并且给出边权,边权代表的是两个房间之间需要的时间,然后每个房间有一个点权,房间不能重复访问,问你在限定的时间里能得到的最大价值为多少题目思路:直接建图,可以用vector >这种东西存,因为还有边权嘛,然后dfs一下就可以了#include using namespa

2017-05-05 22:33:57 488

原创 洛谷 1680 奇怪的分组

题目链接:奇怪的分组题目大意:给你一个n和m,然后是m个c[i],要求你将n个数分在m个组里面,第i个组的人数必须大于c[i],问你一共有多少中情况题目思路:实际上就是从n中分出去sigma(C[i])个数,然后剩下的数假定是sum,则就有sum-1个空,需要插m-1个板子进去,就是高中学的插板法,实际上就是算组合数C(sum-1,m-1,1e9+7),直接套Lucas板子

2017-05-05 22:21:25 401

原创 洛谷 1678 烦恼的高考志愿

题目链接:烦恼的高考志愿

2017-05-05 22:11:23 595

原创 Codeforces Round #411 (Div. 2) D. Minimum number of steps

题目链接:Minimum number of steps题目大意:给你一段字符串,只包含a,b两种字符,如果碰到ab,就将它变为bba,问这样的变换需要几次题目思路:我的做法比较不清真,但是能AC。统计每个b左边的a有多少个,然后就是从2的0次方加到2的n-1次方,每个b的贡献是这么多,把所有b的贡献累加,就可以了,算贡献的时候预处理一下2的多少次方,然后预处理一下从2的0

2017-05-05 17:53:10 260

原创 Codeforces Round #411 (Div. 2) C. Find Amir

题目链接:Find Amir题目大意:给你一个n,城市编号从1到n,然后让你建路,两个点之间建一条路需要的花费是(i+j)%(n+1),然后叫你去建路,使得总花费最小题目思路:直接绕着点转圈就好了,比如n等于10的时候,先连1-10,然后10-2,然后2-9,一直连,直到所有的点连完,然后判一下奇偶就可以了#include using namespace std;ty

2017-05-05 17:15:21 248

原创 Codeforces Round #411 (Div. 2) B. 3-palindrome

题目链接:B. 3-palindrome题目大意:给出字符串长度n,你可以用a b c三个字符构造名字。要求,c尽量少用,且每三个连续的字符不能构成回文串。题目思路:直接循环输出a,a,b,b就好了,没有c,也不会出现3个字符的回文串#include using namespace std;typedef long long ll;int main(){

2017-05-05 17:04:36 405

原创 Codeforces Round #411 (Div. 2) A. Fake NP

题目链接:Fake NP题目大意:给你一个l和r,算这个区间里面能被整除的个数最多的值,如果有多个,输出即可题目思路:简单题,如果l等于r,直接输出l就可以了,否则直接输出2,证明,如果l等于r,输出l一定对,否则,l到r这个区间里面的偶数如果大于等于奇数的个数,直接输出2,否则其实也是2,因为奇数的除数不会都为一个数,那么被2整除的数一定比其它的多#include u

2017-05-05 16:54:19 301

原创 hdoj 2544 最短路

题目链接:最短路题目大意:给你n个点,m条边,然后给出m条边以及边权,问1到n的最短路题目思路:最短路裸题,直接dij即可#include using namespace std;const int maxn = 105;vector >E[maxn];int d[maxn];int n,m,x,y,z;void init(){ for(int

2017-05-04 21:03:18 290

原创 poj 2387 Til the Cows Come Home

题目链接:Til the Cows Come Home题目大意:给你m条边,n个

2017-05-04 20:49:33 341

原创 poj 1161 The Suspects

题目链接:The Suspects题目大意:给你一个n和m,代表有n个人,m个朋友团体,每个团体有k个人,朋友的朋友也是朋友,问最后跟0在一个朋友集合里面的人有多少个(包括0本身)题目思路:并查集,直接连,连完之后判断就好#include #include #include #include #include #include #include using

2017-05-04 19:57:10 298

原创 poj 2236 Wireless Network

题目链接:Wireless Network题目大意:给你二维平面上的m个点,最开始的时候这些点都是坏的,然后有一些操作,O代表修好编号为x的结点,S代表现在需要你去判断给定的两个点x和y是否联通,判断联通的条件是这两个点的距离不得大于d题目思路:既然是判断联通,那么可以想到用并查集去写,然后每次修好一个点的时候从头到尾扫一遍去判断某个点和这个修好的点是不是联通另外一个已经修

2017-05-04 19:35:33 357

原创 hdoj 1213 How Many Tables

题目链接:How Many Tables题目大意:有一堆乱七八糟的朋友关系,然后问你一共有多少个朋友圈题目思路:并查集裸题,直接写就好了#include <bits/stdc++.h>using namespace std;int t,a,b,m,n,father[1005];int Find(int x){ if(x == father[x]) return x; return f

2017-05-02 12:39:56 301

空空如也

空空如也

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

TA关注的人

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