- 博客(46)
- 资源 (6)
- 收藏
- 关注
原创 BestCoder Round #61 (div.2) 1002
情况有点多问题描述XY在玩一个游戏:有N根柱子排成一排,编号为1到N,每个柱子上面有一块宝石,现在XY站在第S根柱子上,出口在第T跟柱子上,XY需要拿到所有宝石后从出口离开。每次XY可以走到相邻的柱子上,也可以使用超能力跳到第一根柱子或者第N根柱子上,如果离开了柱子之后再也不能到达这里。为了节省能量,XY想用最少次数超能力通关。输入描述输入有多组数据,不超过1000组.
2015-10-31 23:07:14 259
原创 BestCoder Round #61 (div.2) 1001
问题描述给n个数{A}_{1},{A}_{2}....{A}_{n}A1,A2....An,从中选3个位置不同的数A,B和C,问是否有一种情况满足A-B=C.输入描述输入有多组数据,不超过1000组.每组数据第一行包含一个整数n,随后一行n个整数{A}_{1},{A}_{2}....{A}_{n}A1,A2....An.(3\leq n\leq
2015-10-31 23:04:45 316
原创 coderforce 569B Inventory
题意:给你一个数列,要求改变最小次数,使改变后的数列为1-n的一个排列解:标记出现过的&&第一次出现的&&a[i]#include#include#includeusing namespace std;const int maxm=1e5+10;int a[maxm];int b[maxm];int vis[maxm];int vit[maxm];int main(){
2015-10-31 14:44:19 297
原创 coderforce A. Case of the Zeros and Ones
题意:相邻的0和1或者1和0可以消除,问最后字符串还有多少个字符#include#include#include#include#includeusing namespace std;const int maxm=1e5+10;char s[maxm<<1];int main(){ int n; while(scanf("%d",&n)!=EOF) {
2015-10-31 13:16:33 313
原创 coderforce 554B Ohana Cleans Up
题意:求最多有多少行相同#include#include#include#include#include#includeusing namespace std;mapq;int main(){ int n; while(scanf("%d",&n)!=EOF) { q.clear(); string s; i
2015-10-30 19:13:35 280
原创 coderforce 551A - GukiZ and Contest
题意:按照得分高低#include#include#includeusing namespace std;const int maxm=1e4+10;int a[maxm];int b[maxm];int c[maxm];int main(){ int n; while(scanf("%d",&n)!=EOF) { for(int i=0;
2015-10-30 18:35:03 284
原创 coderforce 580B Kefa and Company
题目大意:Kefa要请朋友吃饭,他有n个朋友,这些朋友都两个特征:1.身上所带钱数2.对Kefa的友谊值如果这些朋友中有人所带钱数比这个朋友所带钱所多与超过d元(包括d),那么这朋友会觉得自己可怜,Kefa不想让自己的朋友感到可怜,但他又想获得高得友谊值,问Kefa能获得的最高的友谊值是多少#include#include#includeusing namespace
2015-10-30 16:17:18 392
原创 coderforce 572B Order Book
题意:有一些交易event,要求把price相同的合并,最后选取k个最小的sell和最大的buy#include#include#includeusing namespace std;const int maxm=1e5+10;int s[maxm];int b[maxm];char a[5];int main(){ int m,n; while(scanf(
2015-10-30 00:34:01 368
原创 coderforce 586A Alena's Schedule
#include#include#includeusing namespace std;const int maxm=1e2+10;int a[maxm];int main(){ int n; while(scanf("%d",&n)!=EOF) { a[0]=0; a[n+1]=0; int cnt=0;
2015-10-29 19:30:25 312
原创 ocderforce 583B Robot's Task(模拟)
解题说明:此题为一道模拟题,为了保证机器人掉头次数最少,首先让机器人一直向右走,直到无法取到新的数据,然后再回头向左走,循环往复,直到取完所有的数。#include#include#includeusing namespace std;const int maxm=1e3+10;int a[maxm];int vis[maxm];int main(){ int
2015-10-29 11:40:41 325
原创 coderforce 584B Kolya and Tanya(找规律的题)
规律题:pow(3,3n)-pow(7,n);#include#include#includeusing namespace std;#define LL long longconst int mod=1e9+7;int N(int x,int n){ int s=1; for(int i=1;i<=n;i++) { s=(LL)s*x%mod
2015-10-28 22:30:56 386
原创 coderforce 581B Luxurious Houses(线段树求区间最大)
题意:从1到N间房子,求每个房子至少加多少米才能比后面的高解:简单的线段树求区间最大值问题。#include#include#includeusing namespace std;#define lson l,m,rt<<1#define rson m+1,r,rt<<1|1const int maxm=1e5+10;const int inf=-1<<29;int sum[m
2015-10-28 17:10:04 379
原创 coderforce 576A Vasya and Petya's Game
题意:从1到N,若其中有一个数是素数,就把它以及它的次方数存在数组中,最后输出来#include#include#includeusing namespace std;const int maxm=1e3+10;int isprime[maxm];int prime[maxm];int vis[maxm];int a[maxm];int s;void Init(){
2015-10-28 16:33:28 296
原创 coderforce 574A Bear and Elections
题意:有n个数a1,a2,a3,a4....,一次操作可以从将ai减去一个值d,然后第一个数变为a1+d,那么这次操作的代价为d,求使a1大于所有数的最小代价。#include#include#includeusing namespace std;const int maxm=1e2+10;int a[maxm];int main(){ int n; while(
2015-10-26 11:25:44 243
原创 coderforce 591B Rebranding
题意:给你一串字符串,让后操作N次,每次按要求,把一个字符转换成另一个字符,然后输出结果。分析:因为题中只有26个小写字母,所以,每次输入,都按要求把一个字符转换成另一个字符,然后输出即可#include#include#includeusing namespace std;const int maxm=1e6;char s[maxm];int a[36];int main()
2015-10-26 11:03:33 401
原创 coderforce 579A Raising Bacteria
题意:就是求一个数N可以分解成多少个2^a;#include#include#includeusing namespace std;int main(){ int n; while(scanf("%d",&n)!=EOF) { int cnt=0; while(n) { if(n&1)
2015-10-24 22:08:41 384
原创 coderforce 527A Arrays
题意:给你两个数组。问,在数组A中随便选K个,在数组中随便选M个,问你,是否有可能所选的数中,B中的数都比A中的大。简单贪心#include#include#includeusing namespace std;#define LL long longconst LL maxm=1e5+10;LL a[maxm];LL b[maxm];int main(){ LL n
2015-10-20 16:34:28 464
原创 coderforce 573A Bear and Poker
题意:将一些数,可以不变,可以变成自己的2倍或3倍。 变完后,问,是否可以变成全都相等解析:乘以2或3,只是改变数中2和3因子的个数,则把每个数中的2因子和3因子全部去掉后,每个数都相等的话,YES, or NO#include#include#include#include#includeusing namespace std;int main(){ int n;
2015-10-20 15:38:28 330
原创 HDU 5505 GT and numbers
解题报告:果AA大于BB那么显然无解。考虑把AA和BB分解质因数。若BB存在AA没有的质因数也显然无解。对于某一个AA的质因数的次数。为了加速接近BB,它一定是每次翻倍,最后一次的时候把剩下的加上。那么答案就是最小的kk使得2^{k}*A_{num} \geq B_{num}2k∗Anum≥Bnum。最后把每个质因数的答案max
2015-10-20 09:26:02 375
原创 Problem H: 林教主的面试整数部分转换2进制,从右往左,除二取余;小数部分从左往右,乘二取整
Problem H: 林教主的面试Time Limit: 1 Sec Memory Limit: 64 MBSubmit: 16 Solved: 7[Submit][Status][BBS]Description 林教一表人才, 才高八斗, 英明神武, 英俊潇洒, 玉树临风, 风流倜傥, 盖世无双, 人见人爱, 花见花开, 十全十美, 完美无缺, 空前绝后, 名垂
2015-10-19 20:17:33 1029
原创 HDU 2054 A == B ?
判断两个大数是否相等import java.util.*;import java.math.BigDecimal;public class Main { public static void main(String args[]){ Scanner in = new Scanner(System.in); while (in.hasNext()){
2015-10-19 11:20:54 325
原创 HDU 1402 A * B Problem Plus
求大数A*Bimport java.util.*;import java.math.BigInteger;public class Main { public static void main(String args[]){ Scanner cin=new Scanner(System.in); while(cin.hasNext()) { BigInteger a=cin
2015-10-19 11:07:04 319
原创 coderforce 580A Kefa and First Steps
求一串数的最长连续不下降最长L。#include#include#includeusing namespace std;const int maxm=1e5+10;int a[maxm];int dp[maxm];int main(){ int n; while(scanf("%d",&n)!=EOF) { int M=1;
2015-10-18 22:56:36 408
原创 coderforce 588B Duff in Love
#include#include#includeusing namespace std;#define LL long longint main(){ LL n; while(scanf("%lld",&n)!=EOF) { for(LL i=2;i*i<=n;i++) { if(n%i)
2015-10-16 21:21:05 282
原创 coderforce 588A Duff and Meat(简单的贪心)
#include#include#includeusing namespace std;#define LL long longconst LL maxm=1e5+10;LL a[maxm],p[maxm];int main(){ LL n; while(scanf("%lld",&n)!=EOF) { for(LL i=0;i<n;i++)
2015-10-16 09:28:59 426
原创 HDU 5323 Solve this interesting problem(DFS)
题意:求最小的线段树的右端点(根节点表示区间[0,n]),使得给定的区间[L,R]是线段树的某个节点。#include#include#includeusing namespace std;#define LL long longconst LL inf=0x3f3f3f3f3f3f3f3f;LL ans;void dfs(LL l,LL r){ if(l==0)
2015-10-15 22:23:35 358
原创 HDU 1285 确定比赛名次(拓扑排序)
#include#include#includeusing namespace std;const int maxm=1e3+10;int edge[maxm][maxm];int d[maxm];void topsort(int m){ int k=0; for(int i=1;i<=m;i++) { for(int j=1;j<=m;j+
2015-10-15 09:46:32 252
原创 POJ 1861 Network(KUS算法)
简单的最短路,不过,这题的OUTPUT是错的,要注意。#include#include#includeusing namespace std;const int maxm=1e5;int p[maxm];int X[maxm],Y[maxm];int m,n;int MIN;int num;struct node{ int u,v,w;}t[maxm];int c
2015-10-14 21:06:23 301
原创 POJ 1465 Multiple(BFS+同于定理+打印路径)
BFS+同于定理。(看了解题报告才会的),这题实在太巧妙#include#include#includeusing namespace std;const int maxm=1e4+10;int vis[maxm];int d[maxm];int m,n;int ok;struct node{ int pre; int yu; int dig;}que
2015-10-13 22:06:01 459
原创 ZOJ 1649 Rescue(BFS)
基础BFS#include#include#include#include#includeusing namespace std;const int maxm=205;const int inf=1<<29;int m,n;int x1,y1,x2,y2;char map[maxm][maxm];int vis[maxm][maxm];int w[maxm][maxm];
2015-10-13 16:52:50 375
原创 ZOJ 2165 Red and Black(DFS,水题)
#include#include#includeusing namespace std;const int maxm=50;char map[maxm][maxm];int vis[maxm][maxm];int m,n;int cnt;int dir[4][2]= {{1,0},{-1,0},{0,1},{0,-1}};void dfs(int x,int y){
2015-10-13 08:35:39 375
原创 ZOJ 2412 Farm Irrigation(DFS)
就是用DFS找个数#include#include#includeusing namespace std;const int maxm=55;char map[maxm][maxm];int DIR[22][2] = {{0,1},{1,0},{0,-1},{-1,0}};int dir[22][4] = {{0,0,1,1}, {1,0,0,1}, {0,1,1,0}, {1,1,
2015-10-12 18:28:57 361
原创 HDU 1010 Tempter of the Bone(DFS)
题意:判断,能否从S到D,恰好在T时间到。#include#include#includeusing namespace std;const int maxm=10;int dir[4][2]={{0,1},{0,-1},{1,0},{-1,0}};char map[maxm][maxm];int vis[maxm][maxm];int x1,y1;int m,n,T;in
2015-10-12 16:27:43 265
原创 HDU 2454 Degree Sequence of Graph G(Havel-Hakimi定理,图论基础)
题意:判断是否可以构成图,简单的Havel-Hakimi定理的运用)#include#include#includeusing namespace std;const int maxm=1005;struct node{ int degree; int index;}v[maxm];int cmp(node p,node q){ return p.degr
2015-10-12 11:32:46 500
原创 POJ 1659 Frogs' Neighborhood(Havel_Hakimi定理,图论基础)
Havel定理描述给定一个非负整数序列{d1,d2,...dn},若存在一个无向图使得图中各点的度与此序列一一对应,则称此序列可图化。进一步,若图为简单图,则称此序列可简单图化。可图化的判定比较简单:d1+d2+...dn=0(mod2)。关于具体图的构造,我们可以简单地把奇数度的点配对,剩下的全部搞成自环。可简单图化的判定,有一个Havel定理,是说: 我们把序列排成不增序,即d1>
2015-10-12 11:16:11 369
原创 HDU 2136 Largest prime factor
素数筛选法#include#include#includeusing namespace std;const int maxm=1e6+10;int f[maxm];void Init(){ int cnt=1; memset(f,0,sizeof(f)); for(int i=2;i<=maxm;i++) { if(!f[i])
2015-10-11 20:26:48 298
原创 HDU 5500 Reorder the Books(模拟)
来自官方的题解:把这题的模型简化一下,有一个1\rightarrow n1→n的排列形成的数列,我们要用最少的操作次数把这个数列排序,每次操作都是把一个数放到整个数列的最前面。 首先我们可以注意到每个数最多只会被操作一次。因为假如有一个数被往前拿了两次,显然第一次的操作是没有意义的。 然后能发现一定先操作大的数,再操作小的数。因为假如先把小的数放前面去了,再把大的数放前面去,小的数
2015-10-11 11:22:00 506
原创 HDU 5499 SDOI
特别坑的一道题#include#include#includeusing namespace std;const int maxm=305;int n,m;int queue[maxm]; char s[maxm];struct node{ char name[maxm]; char sex[maxm]; double r1,r2; double
2015-10-11 10:44:05 331
原创 HDU 5055 Bob and math problem
简单贪心#include#include#includeusing namespace std;const int maxm=105;const int inf=101;int a[maxm];int main(){ int n; while(scanf("%d",&n)!=EOF) { int MIN=inf,w,i,temp,ok=0;
2015-10-10 15:37:34 270
原创 HDU 5054 Alice and Bob
水------ 两个人的坐标系不同,如果都走到(x,y)能够碰面的话,只有一种可能:在广场矩形的中心位置。 即: 2*x == N 并且 2*y == M。#include#include#includeusing namespace std;int main(){ int M,N,x,y; while(scanf("%d%d%d%d",&M,&N,&x,&y
2015-10-10 13:13:50 430
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人