Contest1063 - 2017广东工业大学第一次月赛-部分题解
Problem A: Chiruno
Description
五年前,Aerix 无意间飞到了幻想乡,然后遇到了传说中的⑨酱,心情非常激动,想和她合影留念,但是⑨酱比较傲娇,她只欣赏算数能力强的,也不随随便便和人合影的,于是她手握冰锥,问 Aerix 这样一个问题:“我现在写一个很长很长的数字,设它为 A, 你告诉我 ⑨ 的 A 次方是多少,当然我不想听你说一长串数字,你告诉我从右往左数第二位的数字是多少就行。” Aerix 一看这么简单的问题,怎么用他出手,然后就把问题丢给你了。
Input
第一行:T,表示这里有 T 组数据
接下来 T 行:每行一个 <=100000 位的数 A
Output
共 T 行:每行一个数,表示对这组数据的解。
Sample Input
0
1
2
999999999999999999999999
Sample Output
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
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
Sample Output
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
10
13
16
40
Sample Output
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
1188
1234
Sample Output
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广东工业大学第一次月赛-部分题解的更多相关文章
- 2017广东工业大学程序设计竞赛决赛 题解&源码(A,数学解方程,B,贪心博弈,C,递归,D,水,E,贪心,面试题,F,贪心,枚举,LCA,G,dp,记忆化搜索,H,思维题)
心得: 这比赛真的是不要不要的,pending了一下午,也不知道对错,直接做过去就是了,也没有管太多! Problem A: 两只老虎 Description 来,我们先来放松下,听听儿歌,一起“唱” ...
- 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 ...
- 2017广东工业大学程序设计竞赛 E倒水(Water)
题目链接:http://www.gdutcode.sinaapp.com/problem.php?cid=1057&pid=4 题解: 方法一:对n取2的对数: 取对数的公式:s = log( ...
- 2017广东工业大学程序设计竞赛决赛-tmk买礼物
tmk买礼物 Description 今天是校赛的日子,为了庆祝这么喜庆的日子,TMK打算买些礼物给女票LSH庆祝一下. TMK进入了雪梨超市,然后刚踏入的一瞬间,店主就对TMK说:“恭喜你成为了本店 ...
- 2017广东工业大学程序设竞赛B题占点游戏
Description 众所周知的是,TMK特别容易迟到,终于在TMK某次又迟到了之后,Maple怒了,Maple大喊一声:"我要跟你决一死战!"然后Maple就跟TMK玩起了一个 ...
- 2017广东工业大学程序设竞赛C题爬楼梯
Description 小时候,我只能一阶一阶得爬楼梯, 后来,我除了能一次爬一阶,还可以一次爬两阶, 到现在,我最多一次可以爬三阶. 那么现在问题来了,我想爬上n层楼,相邻楼层之间有一段楼梯,虽然我 ...
- 2017广东工业大学程序设竞赛E题(倒水)
Description 一天,CC买了N个容量可以认为是无限大的瓶子,开始时每个瓶子里有1升水.接着~~CC发现瓶子实在太多了,于是他决定保留不超过K个瓶子.每次他选择两个当前含水量相同的瓶子,把一个 ...
- 2017广东工业大学程序设计竞赛决赛 Problem E: 倒水(Water) (详解)
倒水(Water) Description 一天,CC买了N个容量可以认为是无限大的瓶子,开始时每个瓶子里有1升水.接着~~CC发现瓶子实在太多了,于是他决定保留不超过K个瓶子.每次他选择两个当前含水 ...
- 2017广东工业大学程序设计竞赛决赛--Problem B: 占点游戏
Description 众所周知的是,TMK特别容易迟到,终于在TMK某次又迟到了之后,Maple怒了,Maple大喊一声:"我要跟你决一死战!"然后Maple就跟TMK玩起了一个 ...
随机推荐
- STM32F405的内部ADC采集
1. ADC的初始化部分基本一致,下面是引脚复用配置 void HAL_ADC_MspInit(ADC_HandleTypeDef *hadc) { GPIO_InitTypeDef GPIO_Ini ...
- python常用英文单词
application 应用程式 应用.应用程序 application framework 应用程式框架.应用框架 应用程序框架 architecture 架构.系统架构 体系结构 argument ...
- 从Asp .net到Asp core (第二篇)《Asp Core 的生命周期》
前面一篇文章简单回顾了Asp .net的生命周期,也简单提到了Asp .net与Asp Core 的区别,我们说Asp Core不在使用Asp.netRuntime,所以它也没有了web程序生命周期中 ...
- sql查询出现1055 this is incompatible with sql_mode=only_full_group_by
今天在测试服务器上突然出现了这么一个MySQL的问题,同样的代码正式服没有问题,那肯定就是出在了配置上,查了一下原因才明白原来是数据库版本为5.7以上的版本, 默认是开启了 only_full_gro ...
- windows程序设计基础知识
Win32 API(Application Programming Interface) Win32 API可认为是一个程序库,提供各式各样的与windows系统服务有关的函数. Win32 API是 ...
- 嵌入式02 STM32 实验04跑马灯
开学STM32 跑马灯的实验主要就是了解GPIO口的配置及使用,我这里是使用库函数进行编程,主要需要设置以下两方面: 1.使能需要使用的IO口的时钟,一共有A.B.C.D.E.F.G七组IO口 2.初 ...
- css中常用的选择器和选择器优先级
css常用的选择器:类选择器,id选择器,元素选择器,伪类选择器,伪元素选择器,属性选择器. 选择器的优先级由四个部分组成:0,0,0,0 一个选择器的具体优先级如下规则确定: ID选择器 加 0,1 ...
- gdb调试常用功能
一.gdb中宏定义 macro define list_entry(ptr, type, member) ((type)( (char)ptr - (unsigned long)(&((typ ...
- Python 判断字符串是否包含中文
一.摘要 使用 xlrd 模块打开带中文的excel文件时,会报错. FileNotFoundError: [Errno 2] No such file or directory: 'xx.xlsx' ...
- Luogu4707 重返现世 min-max容斥、DP
传送门 kthMinMax的唯一模板? 首先你需要知道kth Min-Max定理的内容:\(kthmax(S) = \sum\limits_{T \subseteq S} (-1)^{|T| - k} ...