Problem A: Chiruno

Description

五年前,Aerix 无意间飞到了幻想乡,然后遇到了传说中的⑨酱,心情非常激动,想和她合影留念,但是⑨酱比较傲娇,她只欣赏算数能力强的,也不随随便便和人合影的,于是她手握冰锥,问 Aerix 这样一个问题:“我现在写一个很长很长的数字,设它为 A, 你告诉我 ⑨ 的 A 次方是多少,当然我不想听你说一长串数字,你告诉我从右往左数第二位的数字是多少就行。” Aerix 一看这么简单的问题,怎么用他出手,然后就把问题丢给你了。

Input

第一行:T,表示这里有 T 组数据
接下来 T 行:每行一个 <=100000 位的数 A

Output

共 T 行:每行一个数,表示对这组数据的解。

Sample Input

4
0
1
2
999999999999999999999999

Sample Output

0
0
8
8
#include<stdio.h>
#include<stdlib.h>
#include<iostream>
#include<algorithm>
#include<stack>
#include<string.h>
#include<math.h>
using namespace std;
#define N 110108
#define ll long long
char str[N];
int ans[]={,,,,,,,,,};
int main()
{
int T,j,len;
scanf("%d",&T);
while(T--) //从右往左!!!
{
scanf("%s",str);
len=strlen(str);
// i-str[len-2]-'0';
j=str[len-]-'';
// s=i*10+j;
printf("%d\n",ans[j]);
} return ;
}
这题难就难在找规律,一是可以手推;二是可以用写程序进行找规律,如下:
#include<stdio.h>
#include<stdlib.h>
#include<iostream>
#include<algorithm>
#include<string.h>
#include<math.h>
using namespace std;
#define ll long long
#define mod 100
int main()
{
int i,n;
ll k=;
for(i=;i<= ;i++){
k=k*%mod;
printf("%d %02lld\n",i,k);
if(i%==)printf("\n");
} return ;
}

运行结果截图为:

Problem G: 狗哥的选择困难症

Description

狗哥是一个举棋不定又雷厉风行的人,有一天他遇到了一个巨大的困难,他走到了一个水果摊的前面,水果摊有n种芭娜娜,每种的芭娜娜都只卖剩下1个,老板看出了他的小心思,便说:“你可以随意挑选不超过n个的水果,但是不允许不拿。”狗哥眉头一皱,发现事情并不简单,于是掏出随身携带的天河二号计算机,计算起了有多少种的挑选方案。机智的你一定能比狗哥提前算出来的是吧。

Input

多组样例,第一行一个数字T,代表样例的个数(t<100)

每个样例有一个数字n(0=<n<=62),代表摊位上芭娜娜的种类

Output

对于每个样例输出一个m,代表方案数

Sample Input

1 2

Sample Output

 

主要应用一个组合数的公式即可:

题意要求是所有的选择方法,及偶数项加上奇数项之和构成2的m次方。由于Cm0项取不到(不允许取到0个),故减1.

【这篇博客详细讲解了一些常用的组合数公式,相关知识点可以记到本子上。 http://m.blog.csdn.net/litble/article/details/75913032】

#include<stdio.h>
#include<stdlib.h>
#include<iostream>
#include<algorithm>
#include<string.h>
#include<math.h>
using namespace std;
#define ll long long int main()
{
int T;
double i,n;
scanf("%d",&T);
while(T--){
scanf("%lf",&n);
printf("%.0lf\n",pow(2.0,n)-1.0+1e-);
} return ;
}

而我一开始没想到这个公式,用DP推了出来:

#include<stdio.h>
#include<stdlib.h>
#include<iostream>
#include<algorithm>
#include<stack>
#include<string.h>
#include<math.h>
using namespace std;
#define N 110108
#define ll long long ll dp[][],ans[]; // dp[n][m]表示n个物体中选择m个的组合数
int main()
{
int T;ll i,j;
scanf("%d",&T);
memset(dp,,sizeof(dp));
memset(ans,,sizeof(ans));
for(i=;i<=;i++)
{
for(j=;j<=i;j++)
{
if(j==)
dp[i][j]=i;
else
dp[i][j]=dp[i-][j-]+dp[i-][j];
ans[i]+=dp[i][j];
}
}
while(T--)
{
scanf("%lld",&j);
printf("%lld\n",ans[j]);
} return ;
}

了解DP的同学,可以画个表格自己手推一下!不会就跳过。

Problem H: 找hTh

Description

国庆期间,hTh同学在家好无聊,就玩起自己最喜欢的游戏“找你妹”,对于眼疾手快的他这个好简单了。but,突然hTh收到队长cYz发给他一串长长的字符串,问hTh,请问里面有多少个“你”?聪明的hTh一下子就知道了,不就是要找“hTh”的个数嘛,而且hTh知道,“hThTh”答案是肯定是2不是1,不过,这个字符串好长啊!!所以hTh懒得去算,他向你求助,你能帮帮他吗?

Input

第一行一个整数T,(0<T<=10)
接下来每一行是一个字符串(0<长度<=10000)

Output

输出答案个数。

Sample Input

2
hThTh
abcdhThTefghTh

Sample Output

2
2
#include<stdio.h>
#include<stdlib.h>
#include<iostream>
#include<algorithm>
#include<stack>
#include<string.h>
#include<math.h>
using namespace std;
#define N 100008
char str[];
int main()
{
int i,T,j,cnt,len;
scanf("%d\n",&T);
while(T--)
{
cnt=;
gets(str);
len=strlen(str);
if(len<)
cnt=;
else
{
for(i=;i<=len-;i++)
{
if(str[i]=='h'&&str[i+]=='T'&&str[i+]=='h')
cnt++;
}
}
printf("%d\n",cnt);
} return ;
}

Problem J: 牛蛙的叫声

Description

你训练完踩单车回宿舍路上听到牛蛙的蛙鸣声,有些好听有些不好听,蛙鸣声可以用一个正整数表示,你发现当该整数的质因子种类仅有两种时,蛙鸣声是好听的。
现在给你一个整数表示牛蛙的叫声,问该牛蛙的叫声是否好听。

Input

输入包含多组样例,每个样例输入一个正整数n (1<=n<=1e6),表示牛蛙的叫声

Output

对于每一组样例,输出“YES”表示牛蛙的声音是好听的,否则输出“NO”

Sample Input

6
10
13
16
40

Sample Output

YES
YES
NO
NO
YES
#include<stdio.h>
#include<stdlib.h>
#include<iostream>
#include<algorithm>
#include<stack>
#include<string.h> //质因子(或质因数)在数论里是指能整除给定正整数的 质数
#include<math.h>
using namespace std;
#define N 1000100
#define M 100000
#define ll long long
int prime[N],cnt,p[M]; //p[]表示质因子表,cnt表示质因子的总个数
void getprime(){ //生成1--N的素数判定表,prime[i]=0?1 ;
int i,j;
cnt=;
for(i=;i<=N-;i++)
prime[i]=;
prime[]=prime[]=;
prime[]=;
for(i=;i<=N;i++){
if(prime[i]==)
{
p[++cnt]=i;
for(j=i+i;j<N;j+=i)
prime[j]=;
}
}
}
int cntprime(int n){ //pcnt表示当前课找到的质因子数
int i,j,pcnt=;
for(i=;i<=cnt;i++)
{
if(p[i]>n)
break;
if(n%p[i]==)
pcnt++;
if(pcnt>) //存在两个以上的质因子
return ;
}
if(pcnt==) //存在两个质因子才是正解
return ;
return ;
}
void fact(int a[],int n){
for(int i=;i<=n;i++)
printf(" %d:%6d ",i,p[i]);
}
int main()
{
int n;
getprime();
// fact(p,10);
while(scanf("%d",&n)!=EOF)
{
if(prime[n]==||n==) // 质数直接判定
printf("NO\n");
else
{
if(cntprime(n)==)
printf("YES\n");
else
printf("NO\n");
}
} return ;
}

有人说其实这个题,可以加个奇数的判定条件——即直接忽略奇数!

应该不对,比如15的质因子就有两个:3和5,输入的是YES!

代码运行时间:52MS。比较省时!

Problem I: 一个撒狗粮的游戏

Description

今天讲的是一个撒狗粮的的游戏。
首先,给定四个数字分别是abcd, 其中0≤a, b, c, d≤9,现在我们拥有一个神技,可以消耗一个魔法值来修改这四个数字之中的任意一个(改完还是在0-9以内)。现在要使得a+b=c+d,那么最少要花费多少魔法值?(这个游戏怎么就是撒狗粮了?)

Input

第一行是样例个数T,代表T个样例
接下来T行,每行是4个整数abcd(没有空格隔开),每个整数都是0-9以内

Output

对于每一个样例都输出最小的花费魔法值

Sample Input

2
1188
1234

Sample Output

2
1

HINT

#include<stdio.h>
#include<stdlib.h>
#include<iostream>
#include<algorithm>
#include<string.h>
#include<math.h>
using namespace std;
#define ll long long int main()
{
int i,j,k,m,n,T;
int a,b,c,d;
scanf("%d",&T);
while(T--)
{
scanf("%1d%1d%1d%1d",&a,&b,&c,&d);
if(a+b==c+d)
{
printf("0\n");
}
else if(a+b>c+d)
{
if(a>=c+d&&b<=c+d || b>=c+d&&a<=c+d)
printf("1\n");
else
printf("2\n");
}
else
{
if(c>=a+b&&d<=a+b || d>=a+b&&c<=a+b)
printf("1\n");
else
printf("2\n");
}
} return ;
}

没提交,目测没问题。。

———————————————————————————————我是分割线————————————————————————————————————————

题目怪难的,我花了一半比赛的时间也就勉强写了这几题。惭愧,惭愧。

没有多少耐心了,题解写的烂,程度好的同学可以看看,差一点的也不要灰心——多问问多交流,能补多少题补多少题。

虽然比赛难度大,但是也不应该气馁,应该迎难而上、多多努力,认识到自己的不足和与他人的差距,积累做题审题经验(很重要),打好心态,找到自己知识的漏洞,一点一点补起来。

以后的比赛的机会不会很多了,各位多多努力,积极参与。

Contest1063 - 2017广东工业大学第一次月赛-部分题解的更多相关文章

  1. 2017广东工业大学程序设计竞赛决赛 题解&源码(A,数学解方程,B,贪心博弈,C,递归,D,水,E,贪心,面试题,F,贪心,枚举,LCA,G,dp,记忆化搜索,H,思维题)

    心得: 这比赛真的是不要不要的,pending了一下午,也不知道对错,直接做过去就是了,也没有管太多! Problem A: 两只老虎 Description 来,我们先来放松下,听听儿歌,一起“唱” ...

  2. 2017广东工业大学程序设计竞赛初赛 题解&源码(A,水 B,数学 C,二分 D,枚举 E,dp F,思维题 G,字符串处理 H,枚举)

    Problem A: An easy problem Description Peter Manson owned a small house in an obscure street. It was ...

  3. 2017广东工业大学程序设计竞赛 E倒水(Water)

    题目链接:http://www.gdutcode.sinaapp.com/problem.php?cid=1057&pid=4 题解: 方法一:对n取2的对数: 取对数的公式:s = log( ...

  4. 2017广东工业大学程序设计竞赛决赛-tmk买礼物

    tmk买礼物 Description 今天是校赛的日子,为了庆祝这么喜庆的日子,TMK打算买些礼物给女票LSH庆祝一下. TMK进入了雪梨超市,然后刚踏入的一瞬间,店主就对TMK说:“恭喜你成为了本店 ...

  5. 2017广东工业大学程序设竞赛B题占点游戏

    Description 众所周知的是,TMK特别容易迟到,终于在TMK某次又迟到了之后,Maple怒了,Maple大喊一声:"我要跟你决一死战!"然后Maple就跟TMK玩起了一个 ...

  6. 2017广东工业大学程序设竞赛C题爬楼梯

    Description 小时候,我只能一阶一阶得爬楼梯, 后来,我除了能一次爬一阶,还可以一次爬两阶, 到现在,我最多一次可以爬三阶. 那么现在问题来了,我想爬上n层楼,相邻楼层之间有一段楼梯,虽然我 ...

  7. 2017广东工业大学程序设竞赛E题(倒水)

    Description 一天,CC买了N个容量可以认为是无限大的瓶子,开始时每个瓶子里有1升水.接着~~CC发现瓶子实在太多了,于是他决定保留不超过K个瓶子.每次他选择两个当前含水量相同的瓶子,把一个 ...

  8. 2017广东工业大学程序设计竞赛决赛 Problem E: 倒水(Water) (详解)

    倒水(Water) Description 一天,CC买了N个容量可以认为是无限大的瓶子,开始时每个瓶子里有1升水.接着~~CC发现瓶子实在太多了,于是他决定保留不超过K个瓶子.每次他选择两个当前含水 ...

  9. 2017广东工业大学程序设计竞赛决赛--Problem B: 占点游戏

    Description 众所周知的是,TMK特别容易迟到,终于在TMK某次又迟到了之后,Maple怒了,Maple大喊一声:"我要跟你决一死战!"然后Maple就跟TMK玩起了一个 ...

随机推荐

  1. STM32F405的内部ADC采集

    1. ADC的初始化部分基本一致,下面是引脚复用配置 void HAL_ADC_MspInit(ADC_HandleTypeDef *hadc) { GPIO_InitTypeDef GPIO_Ini ...

  2. python常用英文单词

    application 应用程式 应用.应用程序 application framework 应用程式框架.应用框架 应用程序框架 architecture 架构.系统架构 体系结构 argument ...

  3. 从Asp .net到Asp core (第二篇)《Asp Core 的生命周期》

    前面一篇文章简单回顾了Asp .net的生命周期,也简单提到了Asp .net与Asp Core 的区别,我们说Asp Core不在使用Asp.netRuntime,所以它也没有了web程序生命周期中 ...

  4. sql查询出现1055 this is incompatible with sql_mode=only_full_group_by

    今天在测试服务器上突然出现了这么一个MySQL的问题,同样的代码正式服没有问题,那肯定就是出在了配置上,查了一下原因才明白原来是数据库版本为5.7以上的版本, 默认是开启了 only_full_gro ...

  5. windows程序设计基础知识

    Win32 API(Application Programming Interface) Win32 API可认为是一个程序库,提供各式各样的与windows系统服务有关的函数. Win32 API是 ...

  6. 嵌入式02 STM32 实验04跑马灯

    开学STM32 跑马灯的实验主要就是了解GPIO口的配置及使用,我这里是使用库函数进行编程,主要需要设置以下两方面: 1.使能需要使用的IO口的时钟,一共有A.B.C.D.E.F.G七组IO口 2.初 ...

  7. css中常用的选择器和选择器优先级

    css常用的选择器:类选择器,id选择器,元素选择器,伪类选择器,伪元素选择器,属性选择器. 选择器的优先级由四个部分组成:0,0,0,0 一个选择器的具体优先级如下规则确定: ID选择器 加 0,1 ...

  8. gdb调试常用功能

    一.gdb中宏定义 macro define list_entry(ptr, type, member) ((type)( (char)ptr - (unsigned long)(&((typ ...

  9. Python 判断字符串是否包含中文

    一.摘要 使用 xlrd 模块打开带中文的excel文件时,会报错. FileNotFoundError: [Errno 2] No such file or directory: 'xx.xlsx' ...

  10. Luogu4707 重返现世 min-max容斥、DP

    传送门 kthMinMax的唯一模板? 首先你需要知道kth Min-Max定理的内容:\(kthmax(S) = \sum\limits_{T \subseteq S} (-1)^{|T| - k} ...