自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

moyan_min的专栏

知我者,为我心忧;不知我者,谓我何求。向编程努力……永不放弃,永不言败!!!

  • 博客(39)
  • 问答 (5)
  • 收藏
  • 关注

原创 108 - Maximum Sum

描述:题目是让你求这个矩阵中的子矩阵的元素和,把最大的找出来输出,因为没有想到其他办法,就直接暴出来了 #include int num[110][110]; int main() { //freopen("a.txt","r",stdin); int n,count,sum; while(scanf("%d",&n)!=EOF) { sum=-1

2013-03-31 20:37:02 858

原创 507 - Jill Rides Again

描述:求连续数列的最大和,如果存在和相等的,那么选取所跨区间大的,如果所跨区间一样大,则选取开始位置小的,结果因为输出时缺少一个字母“T”,结果wa那么多次…… #include int num[20010]; int main() { // freopen("a.txt","r",stdin); int n,m,count,sum,flag=1; scanf("%d",&

2013-03-31 11:04:31 766

原创 10041 - Vito's Family

描述:找中位数,然后求绝对值的和就是了 #include #include int cmp(const void *p1,const void *p2) { return *(int *)p1 - *(int *)p2; } int num[510]; int main() { //freopen("a.txt","r",stdin); int n,m,count,su

2013-03-31 01:23:16 1208

原创 11129 - An antiarithmetic permutation

描述:题目的意思是对0-n之间的数进行变化,,使之任何子序列都不能出现等差数列,1 2 4 3这样也不行,因为1 2 3也是等差数列,而1 3 4 2却可以,输出任何一种即可,所以就采用了递归归并的方法,先分成奇偶数列,然后奇偶数列再次分成奇偶数列,知道不能分为止 #include int num[10010],t[10010]; void solve(int x,int y) { if

2013-03-31 01:02:47 1179

原创 10245 - The Closest Pair Problem

描述:刚开始直接超时,后来改了一点,居然过了 #include #include #define N 10010 double num[N][2]; int main() { // freopen("a.txt","r",stdin); int n; while(scanf("%d",&n)!=EOF) { if(!n) break;

2013-03-29 17:32:38 733

原创 11100 - The Trip, 2007

描述:大包套小包,最后会剩下几个包,而且剩下包的数量所包含的包的数量尽量平均,其实开始输入的包的数量最多的就是最后剩下的包的数量,然后依次递增这个数量输出就可以了 #include #include #include #define N 10010 int cmp(const void *p1,const void *p2) { return *(int *) p1 - *(int

2013-03-29 17:08:52 700

原创 10716 - Evil Straw Warts Live

描述:把所给的字符串变换成回文,并统计其变换次数,如果不能,则输出Impossible #include #include #include int main() { // freopen("a.txt","r",stdin); int n,num[30]; scanf("%d",&n); while(n--) { char s[110]

2013-03-29 15:36:10 1196

原创 993 - Product of digits

描述:题意就是从1-9之间找出一堆数相乘的积就是输入的数值,如果没有,就输出-1 #include #include int main() { // freopen("a.txt","r",stdin); int n,x; scanf("%d",&n); while(n--) { scanf("%d",&x); if(x>=

2013-03-28 22:10:54 585

原创 10720 - Graph Construction

描述:因为是简单图,所以先判断角度和是否为偶数,然后再需要用优先队列,从大到小进行排除 #include #include #include #include using namespace std; priority_queue p; int num[10010]; int main() { // freopen("a.txt","r",stdin); int n;

2013-03-28 11:20:52 573

原创 10670 - Work Reduction

描述:用最少的钱把n降到m,l代表输入有多少种可能,每一种可能第一个数代表n减少一需要花费多少,第二个数代表减少一半需要花费多少,然后统计一下就可以了 #include #include #include struct State { int num; char str[20]; }; State s[110]; int cmp(const void *p1,const void

2013-03-27 20:34:20 502

原创 10382 - Watering Grass

描述:区间选取问题的变换问题 #include #include #include int cmp(const void *p1,const void *p2) { if(((double *)p1)[0]>((double *)p2)[0]) return 1; else if(((double *)p1)[0]<((double *)p2)[0]) return -1;

2013-03-27 16:07:41 560

原创 11054 - Wine trading in Gergovia

描述:水题,不解释 #include #include int num[100010]; int main() { //freopen("a.txt","r",stdin); int n; while(scanf("%d",&n)!=EOF) { if(!n) break; unsigned long long int sum=0

2013-03-26 12:05:07 623

原创 10718 - Bit Mask

描述:题意很简单,可是如果要从L到U之间用 | 遍历的话会超时,只能换种思路了 #include #include int main() { // freopen("a.txt","r",stdin); int n,l,u; unsigned int m; while(scanf("%d%d%d",&n,&l,&u)!=EOF) { m=0

2013-03-26 00:08:13 699

原创 10400 - Game Show Math

描述:根据前n个数看是否能够凑出最后一个数,只能进行+、-、*、/四则运算,谁在前面,谁的优先级高,不过会出现4^100,简单的暴肯定会超时的,稍微剪枝一下就可以过了 #include #include #include char p[]= {'+','-','*','/'}; int num[110]; char str[110]; int n,t,m; int hash[64010][1

2013-03-25 22:38:31 717

原创 10602 - Editor Nottoobad

描述:以第一个字符串为贪心对象,在其他字符串中寻找一个与此字符串从字符串下标开始匹配最多的字符串,如果在匹配过程中存在不相符的,那么前面这些匹配成功的就不需要再次不输入,也就是说这些部分在press时就不需要了,只需要press以后不匹配的就可以了,然后在意这个字符串为贪心对象,以此类推即可 #include #include #include int cmp(const void *p1,

2013-03-24 15:02:56 719

原创 714 - Copying Books

描述:采用二分+贪心策略,找出范围值,然后从后往前找就行“/”的位置判断 #include #include int num[510],score[510]; int main() { //freopen("a.txt","r",stdin); int n,m,t,k; long long v,sum,max,count; scanf("%d",&t);

2013-03-24 11:00:28 1029

原创 10954 - Add All

描述:就是构建哈夫曼树,然后再把构建哈夫曼树过程中出现的和(就是两个数字相加所得到的新的数字)全部相加就是要输出的结果了 #include #include #include int cmp(const void *p1,const void *p2) { return *(int *)p1 - *(int *)p2; } int num[5010],score[100010]; i

2013-03-21 17:48:34 896

原创 10714 - Ants

描述:用简单方法就可以过,不用模拟 #include int num[100010]; int main() { // freopen("a.txt","r",stdin); int n,m,t; scanf("%d",&t); while(t--) { scanf("%d%d",&n,&m); int max=0,min=0

2013-03-21 16:00:22 595

原创 10020 - Minimal coverage

描述:问题就是刘汝佳书上的的区间选择问题,如果不会的话就看看书吧 #include #include #include int n,m; int cmp(const void *p1,const void *p2) { int a=((int *)p1)[0],b=((int *)p1)[1],c=((int *)p2)[0],d=((int *)p2)[1]; if(a<0

2013-03-21 14:59:46 637

原创 10026 - Shoemaker's Problem

描述:就是性价比问题,谁的性价比高谁就优先,如果一样,就按照工作的顺序优先 #include #include #include int cmp(const void *p1,const void *p2) { if(((int *)p1)[1]*((int *)p2)[0]>((int *)p1)[0]*((int *)p2)[1]) return 1; else if((

2013-03-19 00:20:40 1030 1

原创 10700 - Camel trading

描述:先加后乘还是先乘后加问题,注意要用long long int #include #include #include char s[1010]; int main() { // freopen("a.txt","r",stdin); int n; scanf("%d\n",&n); while(n--) { gets(s);

2013-03-18 23:52:50 646

原创 10340 - All in All

描述:从t字符串中查找s字符串,查到,就输出Yes,否则,输出No #include #include #include char s[10010],t[1000010]; int main() { //freopen("a.txt","r",stdin); while(scanf("%s%s",s,t)!=EOF) { int len_s=strle

2013-03-15 00:22:26 889

原创 10487 - Closest Sums

描述:水题,不解释 #include #include int num_n[1000],num_m[30],count[30]; int n,m,flag,sum=1; int main() { //freopen("a.txt","r",stdin); while(scanf("%d",&n)!=EOF) { if(!n) break;

2013-03-15 00:07:51 746

原创 10706 - Number Sequence

描述:题目的意思就是给你一个数,输出这个数的位置为什么数,当然,规律很简单,就是从小一直递增起来的,我的思路就是把这些数全都暴出来,然后查询就可以了 #include #include long num[40000]; char str[1000000]; long count,n,m; void solve() { num[1]=1; count=2; str[1]=

2013-03-14 23:46:40 719

原创 10057 - A mid-summer night's dream.

描述:先对数组排序,第一个数是找出中间数,第二个数是找出与此相同的数有多少,第三个数是两个数的区间内有多少数 #include #include int cmp(const void *p1,const void *p2) { return *(int*)p1 - *(int*)p2; } int num[1000010]; int main() { //freopen("a.

2013-03-13 22:08:57 986

原创 10341 - Solve It

描述:因为是单调的,所以二分查找就可以解决 #include #include int main() { // freopen("a.txt","r",stdin); double p,q,r,s,t,u; while(scanf("%lf%lf%lf%lf%lf%lf",&p,&q,&r,&s,&t,&u)!=EOF) { double x=0,

2013-03-13 14:08:10 642

原创 270 - Lining Up

描述:把任何一个点当做原点,直接暴就可以暴出来 #include #include #include int main() { //freopen("a.txt","r",stdin); int count,flag,n; char str[1100]; int sum[710][2]; gets(str); sscanf(str,"%d",&

2013-03-13 13:20:25 753

原创 10132 - File Fragmentation

描述:水题,不解释 #include #include #include #include #include #include using namespace std; map m; string str[150]; int count,flag,len,n; int main() { // freopen("a.txt","r",stdin); scanf("%d",&

2013-03-12 17:01:21 1114

原创 10763 - Foreign Exchange

描述:很简单的一道题目,直接AC就可以了 #include #include #include #include int str[500010][2]; int cmp(const void *p1,const void *p2) { if(((int*)p1)[0]==((int*)p2)[0]) { if(((int*)p1)[1]>((int*)p2)

2013-03-11 19:12:32 1025 1

原创 10905 - Children's Game

描述:快排改一下就可以过了 #include #include #include #include char str[55][1000]; int cmp(const void *p1,const void *p2) { char s1[2000],s2[2000]; strcpy(s1,(char *)p1); strcat(s1,(char *)p2);

2013-03-11 13:34:31 817

原创 10624 - Super Number

描述:险过,2.856s,题意就是前几位能被几整除,n表示是从第n位开始,m表示是到m位结束,如果在这期间存在一个数可以整除从n到m区间的任何一个数,那就输出,如果存在多个,选取最小的一个输出,如果不存在,输出-1 #include #include #include int n,m,flag,sum; char str[35]; int cal(int cur) { int c=0

2013-03-11 13:00:51 858

原创 11210 - Chinese Mahjong

描述:麻将题目,其实就是判断麻将是否能不能胡的问题,不过要注意麻将每张牌只能重复四张,而且麻将牌中出现三个重复时要考虑一下是否直接剔除 #include #include #include #define NX 1000003 char str[14][6]; char temp[][6]= {"DONG","NAN","XI","BEI","ZHONG","FA","BAI"}; int

2013-03-10 17:37:02 900

原创 10274 - Fans and Gems

描述:这道题更让人头疼,想破头才知道移动的顺序必须按照字母的顺序,就是得按照D、L、R、U这个顺寻才能过,哪有这么坑人的啊,无语了…… #include #include #include #define NX 1000003 int N,M,flag; char d[]= {'D','L','R','U'}; int next[NX],head[NX]; char str[NX][14][

2013-03-09 19:17:21 856

原创 11198 - Dancing Digits

描述:坑人的一道题,不过也不难,就是数字交换,只有一正一负的数字才存在交换,并且交换之后不能形成素数 #include #include #include #define N 1000003 int t[10]= {1,2,3,4,5,6,7,8},cmp[]= {4,6,8,9,10,12,14,15}; int head[N],next[N],count[N]; int str[N][1

2013-03-08 10:11:10 781

原创 11218 - KTV

描述:直接暴就可以了 #include #include #include #define N 100003 int num[1010][4],s[11]; int n,sum,m=1; void dfs(int cur,int count) { int x=0; for(int i=1; i<=9; i++) if(!s[i]) {

2013-03-06 11:03:56 1001

原创 141 - The Spot Game

描述:不只哈希可以过,直接暴也可以 #include #include #include #define N 10003 typedef long State[55][55]; State s[N],num; int n,Sum,flag; int head[N],next[N]; bool cmp(long (*p)[55],long (*q)[55]) { for(int i=

2013-03-05 23:41:20 867

原创 10887 - Concatenation of Languages

描述:居然要gets才可以,scanf读入居然过不了,唉…… #include #include #include #define N 1000003 #define M 2250010 int n , row , col,flag,m=0,sum; char s_row[1510][12],s_col[1510][12]; char s[M][22]; int head[N],next

2013-03-04 17:57:28 829

原创 10591 - Happy Number

描述:判断是否循环就可以了 #include #include #include #define N 10003 int num[N]; int main() { // freopen("a.txt","r",stdin); int n,x,count,m=0,flag; num[1]=1; scanf("%d",&n); while(m<n)

2013-03-04 16:48:21 4767

原创 10125 - Sumsets

描述:哈希处理就可以了 #include #include #include #define N 1000010 #define M 1010 int cmp(const void *p1,const void *p2) { return *(int *)p1 - *(int *)p2; } int num[M],head[N],next[N]; long long sum[N][

2013-03-04 16:44:54 542

空空如也

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

TA关注的人

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