目录

7-1 出生年 (15 分)

7-2 点赞 (20 分)

7-3 情人节 (15 分)

7-4 A乘以B (5 分)

7-5 A除以B (10 分)

7-6 新世界 (5 分)

7-7 古风排版 (20 分)

7-8 最佳情侣身高差 (10 分)

7-9 人以群分 (25 分)

7-10 多项式A除以B (25 分)

7-11 悄悄关注 (25 分)

7-12 功夫传人 (25 分)


7-1 出生年 (15 分)

//
7-1 出生年 (15 分)以上是新浪微博中一奇葩贴:“我出生于1988年,直到25岁才遇到4个数字都不相同的年份。”也就是说,直到2013年才达到“4个数字都不相同”的要求。本题请你根据要求,自动填充“我出生于y年,直到x岁才遇到n个数字都不相同的年份”这句话。输入格式:
输入在一行中给出出生年份y和目标年份中不同数字的个数n,其中y在[1, 3000]之间,n可以是2、或3、或4。注意不足4位的年份要在前面补零,例如公元1年被认为是0001年,有2个不同的数字0和1。输出格式:
根据输入,输出x和能达到要求的年份。数字间以1个空格分隔,行首尾不得有多余空格。年份要按4位输出。注意:所谓“n个数字都不相同”是指不同的数字正好是n个。如“2013”被视为满足“4位数字都不同”的条件,但不被视为满足2位或3位数字不同的条件。输入样例1:
1988 4
输出样例1:
25 2013
输入样例2:
1 2
输出样例2:
0 0001

// 7-1
#include<bits/stdc++.h>
using namespace std;// 出生年份y和目标年份中不同数字的个数n,其中y在[1, 3000]之间,n可以是2、或3、或4。
int cnt[10];int main()
{int y,x,n,i,j,diff,t;while( ~scanf("%d%d",&y,&n) ){for( x=0,i=y;;x++,i++ ){memset( cnt,0,sizeof( cnt ) );          // 清空数组 t=i; while( t<1000 ) t*=10;             // 注意不足4位的年份要在前面补零while( t ) { cnt[ t%10 ]++; t/=10; }    // 用输出语句测试死循环的位置for( diff=j=0;j<10;j++ ) if( cnt[j] ) diff++;    // i j 区分下标 if( diff==n ) break;}printf("%d %04d\n",x,i);        // 行首尾不得有多余空格。年份要按4位输出}return 0;
}
find:
01 前面补零和后面补零都一样 反正都是被模 // 7-1
#include<bits/stdc++.h>
using namespace std;int cnt[10];
char str[5];bool boost()
{int i=0; str[i]++;while( str[i]>=10 ) { str[i++]=0; str[i]++; }return true;
}int main()
{int y,x,n,diff,pos,i;while( ~scanf("%d%d",&y,&n) ){memset( str,0,sizeof( str ) );pos=0; while( y ) str[pos++]=y%10,y/=10;x=0;do{memset( cnt,0,sizeof( cnt ) );for( i=0;i<4;i++ ) cnt[ (int)str[i] ]++;for( diff=i=0;i<10;i++ ) if( cnt[i] ) diff++; if( diff==n ) break;x++;}while( boost() );      // 函数返回值!printf("%d ",x);for( i=3;i>=0;i-- ) printf("%d",str[i]);printf("\n");}return 0;
}

7-2 点赞 (20 分)

//
输入样例:
4
3 889 233 2
5 100 3 233 2 73
4 3 73 889 2
2 233 123
输出样例:
233 3
// 7-2
#include<bits/stdc++.h>
using namespace std;// 正整数N(≤1000),是该用户点赞的博文数量 特性标签从1到1000编号
const int N=1111;
int cnt[N];int main()
{int n,k,i,x,pos;while( ~scanf("%d",&n) ){memset( cnt,0,sizeof( cnt ) );while( n-- ){scanf("%d",&k);                    // while 老是因为压缩代码行 漏写大括号while( k-- ) { scanf("%d",&x); cnt[x]++; }}for( pos=i=1;i<=1000;i++ ) { if( cnt[pos]<=cnt[i] ) pos=i; }// <= 输出编号最大的那个printf("%d %d\n",pos,cnt[pos]);}return 0;
}
// 最常出现的那个特性标签 如果有并列,则输出编号最大的那个

7-3 情人节 (15 分)

//
输入样例1:
GaoXZh
Magi
Einst
Quark
LaoLao
FatMouse
ZhaShen
fantacy
latesum
SenSen
QuanQuan
whatever
whenever
Potaty
hahaha
.
输出样例1:
Magi and Potaty are inviting you to dinner...
输入样例2:
LaoLao
FatMouse
whoever
.
输出样例2:
FatMouse is the only one for you...
输入样例3:
LaoLao
.
输出样例3:
Momo... No one is for you ...
// 7-3
#include<bits/stdc++.h>
using namespace std;const int N=111;
char a[N][15];int main()
{int i;for( i=1;;i++ ) { scanf("%s",a[i]); if( a[i][0]=='.' ) break; } i--;if( i>=14 )         printf("%s and %s are inviting you to dinner...\n",a[2],a[14]);else if( i>=2 )     printf("%s is the only one for you...\n",a[2]);else                printf("Momo... No one is for you ...\n");          // 检查// 没有修改 %s, "" 后面有变量居然不报错return 0;
}// 7-3
#include<bits/stdc++.h>
using namespace std;vector<string> v;int main()
{string s;while( cin>>s ){if( s[0]=='.' ) break;v.push_back( s );}if( v.size()>=14 )      cout<<v[1]<<" and "<<v[13]<<" are inviting you to dinner..."<<endl;else if( v.size()>=2 )  cout<<v[1]<<" is the only one for you..."<<endl;else                    cout<<"Momo... No one is for you ..."<<endl;return 0;
}

7-4 A乘以B (5 分)

//
7-4 A乘以B (5 分)
看我没骗你吧 —— 这是一道你可以在10秒内完成的题:给定两个绝对值不超过100的整数A和B,输出A乘以B的值。输入格式:
输入在第一行给出两个整数A和B(−100≤A,B≤100),数字间以空格分隔。输出格式:
在一行中输出A乘以B的值。输入样例:
-8 13
输出样例:
-104
// 7-4
#include<bits/stdc++.h>
using namespace std;int main()
{int a,b;while( ~scanf("%d%d",&a,&b) ){printf("%.0lf\n", (double)a*(double)b );}return 0;
}
// A和B(-100≤A,B≤100)绝对值不超过100的整数

7-5 A除以B (10 分)

//
7-5 A除以B (10 分)
真的是简单题哈 —— 给定两个绝对值不超过100的整数A和B,要求你按照“A/B=商”的格式输出结果。输入格式:
输入在第一行给出两个整数A和B(−100≤A,B≤100),数字间以空格分隔。输出格式:
在一行中输出结果:如果分母是正数,则输出“A/B=商”;如果分母是负数,则要用括号把分母括起来输出;如果分母为零,则输出的商应为Error。输出的商应保留小数点后2位。输入样例1:
-1 2
输出样例1:
-1/2=-0.50
输入样例2:
1 -3
输出样例2:
1/(-3)=-0.33
输入样例3:
5 0
输出样例3:
5/0=Error
// 7-5
#include<bits/stdc++.h>
using namespace std;int main()
{int a,b;while( ~scanf("%d%d",&a,&b) ){if( b==0 )      printf("%d/0=Error\n",a);       // 思维定势else if( b<0 )  printf("%d/(%d)=%.2lf\n",a,b, (double)a/(double)b );else            printf("%d/%d=%.2lf\n",a,b, (double)a/(double)b );}return 0;
}
// 输出的商应保留小数点后2位

7-6 新世界 (5 分)

//
7-6 新世界 (5 分)
这道超级简单的题目没有任何输入。你只需要在第一行中输出程序员钦定名言“Hello World”,并且在第二行中输出更新版的“Hello New World”就可以了。
// 7-6
#include<bits/stdc++.h>
using namespace std;int main()
{printf("Hello World\n");printf("Hello New World\n");return 0;
}

7-7 古风排版 (20 分)

//
7-7 古风排版 (20 分)
中国的古人写文字,是从右向左竖向排版的。本题就请你编写程序,把一段文字按古风排版。输入格式:
输入在第一行给出一个正整数N(<100),是每一列的字符数。第二行给出一个长度不超过1000的非空字符串,以回车结束。输出格式:
按古风格式排版给定的字符串,每列N个字符(除了最后一列可能不足N个)。输入样例:
4
This is a test case
输出样例:
asa T
st ih
e tsice s
// 7-7
#include<bits/stdc++.h>
using namespace std;// N(<100) 第二行给出一个长度不超过1000的非空字符串,以回车结束
const int N=111;
char a[N][N];void init()
{for( int i=0;i<N;i++ )for( int j=0;j<N;j++ )a[i][j]=' ';
}int main()
{int n,i,j,len;while( ~scanf("%d%*c",&n) ){init();for( i=0;;i++ )for( j=0;j<n;j++ ){scanf("%c",&a[i][j]);if( a[i][j]=='\n' ) goto a;     // 不能用数字}a:                  // i 本身就是下标 not -1a[i][j]=' '; len=i; if( j==0 ) len-- ;  // 用 随机数据 特殊数据 测试 // eg. 2 1234for( j=0;j<n;j++ )      // <n 检查{                   for( i=len;i>=0;i-- ) printf("%c",a[i][j]);     // i j 顺序printf("\n");} }return 0;
}

7-8 最佳情侣身高差 (10 分)

//
7-8 最佳情侣身高差 (10 分)
专家通过多组情侣研究数据发现,最佳的情侣身高差遵循着一个公式:(女方的身高)×1.09 =(男方的身高)。如果符合,你俩的身高差不管是牵手、拥抱、接吻,都是最和谐的差度。下面就请你写个程序,为任意一位用户计算他/她的情侣的最佳身高。输入格式:
输入第一行给出正整数N(≤10),为前来查询的用户数。随后N行,每行按照“性别 身高”的格式给出前来查询的用户的性别和身高,其中“性别”为“F”表示女性、“M”表示男性;“身高”为区间 [1.0, 3.0] 之间的实数。输出格式:
对每一个查询,在一行中为该用户计算出其情侣的最佳身高,保留小数点后2位。输入样例:
2
M 1.75
F 1.8
输出样例:
1.61
1.96
// 7-8
#include<bits/stdc++.h>
using namespace std;int main()
{int n; char sex; double h,ans;while( ~scanf("%d",&n) )        // 这里可以往后吃回车 // 吃一次就好了{while( n-- ){scanf("%*c%c %lf",&sex,&h);             // 往前吃回车if( sex=='M' )  ans= h / (double)1.09 ;else            ans= h * (double)1.09 ;printf("%.2lf\n",ans);}}return 0;
}

7-9 人以群分 (25 分)

//
7-9 人以群分 (25 分)
社交网络中我们给每个人定义了一个“活跃度”,现希望根据这个指标把人群分为两大类,即外向型(outgoing,即活跃度高的)和内向型(introverted,即活跃度低的)。要求两类人群的规模尽可能接近,而他们的总活跃度差距尽可能拉开。输入格式:
输入第一行给出一个正整数N(2≤N≤10^5)。随后一行给出N个正整数,分别是每个人的活跃度,其间以空格分隔。题目保证这些数字以及它们的和都不会超过2
31。输出格式:
按下列格式输出:Outgoing #: N1
Introverted #: N2
Diff = N3
其中N1是外向型人的个数;N2是内向型人的个数;N3是两群人总活跃度之差的绝对值。输入样例1:
10
23 8 10 99 46 2333 46 1 666 555
输出样例1:
Outgoing #: 5
Introverted #: 5
Diff = 3611
输入样例2:
13
110 79 218 69 3721 100 29 135 2 6 13 5188 85
输出样例2:
Outgoing #: 7
Introverted #: 6
Diff = 9359
// 7-9
#include<bits/stdc++.h>
using namespace std;// N(2≤N≤10^5) 题目保证这些数字以及它们的和都不会超过2^31
const int N=1e6+7;
int a[N];void output( int x,int y,int diff )
{printf("Outgoing #: %d\n",x);printf("Introverted #: %d\n",y);printf("Diff = %d\n",diff);
}int main()
{int n,i,sum,sum1,state1,state2;while( ~scanf("%d",&n) ){sum=0;              // 没有初始化是很可怕的事情 debug 哭! for( i=1;i<=n;i++ ) { scanf("%d",&a[i]); sum+=a[i]; }sort( a+1,a+n+1 );sum1=0;for( i=1;i<=n/2;i++ ) sum1+=a[i];state1=sum-2*sum1;state2=sum-2*sum1-2*a[ n/2+1 ];if( n&1 ) {if( state1>state2 ) output( n/2+1,n/2,state1 );else                output( n/2,n/2+1,state2 );      // 结果写反了 }else output( n/2,n/2,state1 );}return 0;
}
// find:
// 01 举小例子理解 4/2 5/2
// 02 初始化!!!
// 03 检查输出有无写反嘿 要对应匹配上呀

7-10 多项式A除以B (25 分)

//
7-10 多项式A除以B (25 分)
这仍然是一道关于A/B的题,只不过A和B都换成了多项式。你需要计算两个多项式相除的商Q和余R,其中R的阶数必须小于B的阶数。输入格式:
输入分两行,每行给出一个非零多项式,先给出A,再给出B。每行的格式如下:N e[1] c[1] ... e[N] c[N]
其中N是该多项式非零项的个数,e[i]是第i个非零项的指数,c[i]是第i个非零项的系数。各项按照指数递减的顺序给出,保证所有指数是各不相同的非负整数,所有系数是非零整数,所有整数在整型范围内。输出格式:
分两行先后输出商和余,输出格式与输入格式相同,输出的系数保留小数点后1位。同行数字间以1个空格分隔,行首尾不得有多余空格。注意:零多项式是一个特殊多项式,对应输出为0 0 0.0。但非零多项式不能输出零系数(包括舍入后为0.0)的项。在样例中,余多项式其实有常数项-1/27,但因其舍入后为0.0,故不输出。输入样例:
4 4 1 2 -3 1 -1 0 -1
3 2 3 1 -2 0 1
输出样例:
3 2 0.3 1 0.2 0 -1.0
1 1 -3.1

7-11 悄悄关注 (25 分)

//
7-11 悄悄关注 (25 分)
新浪微博上有个“悄悄关注”,一个用户悄悄关注的人,不出现在这个用户的关注列表上,但系统会推送其悄悄关注的人发表的微博给该用户。现在我们来做一回网络侦探,根据某人的关注列表和其对其他用户的点赞情况,扒出有可能被其悄悄关注的人。输入格式:
输入首先在第一行给出某用户的关注列表,格式如下:人数N 用户1 用户2 …… 用户N
其中N是不超过5000的正整数,每个用户i(i=1, ..., N)是被其关注的用户的ID,是长度为4位的由数字和英文字母组成的字符串,各项间以空格分隔。之后给出该用户点赞的信息:首先给出一个不超过10000的正整数M,随后M行,每行给出一个被其点赞的用户ID和对该用户的点赞次数(不超过1000),以空格分隔。注意:用户ID是一个用户的唯一身份标识。题目保证在关注列表中没有重复用户,在点赞信息中也没有重复用户。输出格式:
我们认为被该用户点赞次数大于其点赞平均数、且不在其关注列表上的人,很可能是其悄悄关注的人。根据这个假设,请你按用户ID字母序的升序输出可能是其悄悄关注的人,每行1个ID。如果其实并没有这样的人,则输出“Bing Mei You”。输入样例1:
10 GAO3 Magi Zha1 Sen1 Quan FaMK LSum Eins FatM LLao
8
Magi 50
Pota 30
LLao 3
Ammy 48
Dave 15
GAO3 31
Zoro 1
Cath 60
输出样例1:
Ammy
Cath
Pota
输入样例2:
11 GAO3 Magi Zha1 Sen1 Quan FaMK LSum Eins FatM LLao Pota
7
Magi 50
Pota 30
LLao 48
Ammy 3
Dave 15
GAO3 31
Zoro 29
输出样例2:
Bing Mei You

7-12 功夫传人 (25 分)

//
输入样例:
10 18.0 1.00
3 2 3 5
1 9
1 4
1 7
0 7
2 6 1
1 8
0 9
0 4
0 3
输出样例:
404

PTA_2017年天梯赛大区赛相关推荐

  1. 团队天梯赛(GLPT) 2017年天梯赛大区赛题集

    2017年天梯赛大区赛题集 L1: 出生年 stl set 的使用 #include<iostream> #include<set> #include<stdio.h&g ...

  2. 2017年天梯赛大区赛题集

    懒得写思路了,要是那个题需要题意的留言或者私聊 7-1 出生年 (15 分) 7-2 点赞 (20 分) 7-3 情人节 (15 分) 7-4 A乘以B (5 分) 7-5 A除以B (10 分) 7 ...

  3. 2017年天梯赛大区赛题集 7-13 非常弹的球 (30 分)(物理)

    刚上高一的森森为了学好物理,买了一个"非常弹"的球.虽然说是非常弹的球,其实也就是一般的弹力球而已.森森玩了一会儿弹力球后突然想到,假如他在地上用力弹球,球最远能弹到多远去呢?他不 ...

  4. 晋级赛关键一场遇到服务器中途维护,第四届全球争霸赛-大区赛常见问题说明...

    为了解决玩家在比赛中遇到的困难和疑惑,更好的参与全球争霸赛大区赛,下面将针对服务器大区赛中常见的问题和疑问进行解答,请广大玩家相互转告. 常见问题分类: 大区赛排位赛相关问题 大区赛决赛相关问题 比赛 ...

  5. 蓝桥杯大赛软件赛省赛,C/C++大学B组,改革后2019-2021真题知识点分类

    1.蓝桥杯 比赛时长: 四个小时 比赛规则: 蓝桥杯比赛跟天梯赛.ACM还不太一样,比赛中提交的答案并没有反馈机制,也就是说你提交了答案以后,自己并不知道是对是错,就像考试一样,只有交了卷,成绩下来以 ...

  6. 2018 ACM 国际大学生程序设计竞赛上海大都会赛重现赛 F Color it

    链接:https://www.nowcoder.com/acm/contest/163/F 来源:牛客网 2018 ACM 国际大学生程序设计竞赛上海大都会赛重现赛 F Color it 时间限制:C ...

  7. Algorithm:数学建模大赛(国赛和美赛)的简介/内容、数学建模做题流程、历年题目类型及思想、常用算法、常用工具之详细攻略

    Algorithm:数学建模大赛(国赛和美赛)的简介/内容.数学建模做题流程.历年题目类型及思想.常用算法.常用工具之详细攻略 目录 国内数学建模大赛简介 1.本科生数学建模大赛 2.研究生数学建模大 ...

  8. Jumping Monkey(CCPC网络赛重赛)

    Jumping Monkey(CCPC网络赛重赛) 题意: n个点的树,每个点有一个不同的值aia_iai​.现在一个猴子在树上,这个猴子从点u跳到点v当且仅当ava_vav​是u到v最短路径上的最大 ...

  9. 第十二届蓝桥杯大赛软件赛省赛 C/C++ 大学 B 组解析

    第十二届蓝桥杯大赛软件赛省赛 C/C++ 大学 B 组 试题 A: 空间 试题 B: 卡片 试题 C: 直线 试题 D: 货物摆放 试题 E: 路径 试题 F: 时间显示 试题 G: 砝码称重 试题 ...

最新文章

  1. [epoll]epoll理解
  2. Visual Studio常用快捷键
  3. Node.js实践第一天
  4. 06-Flutter移动电商实战-dio基础_Get_Post请求和动态组件协作
  5. jsp中java代码if_jsp中jstl标签的类似 if - else 语句 的语法
  6. 软件设计 -- 流程图的重要性
  7. php操作cookie_php设置cookie【三种方案】
  8. TEA(Tiny Encryption Algorithm)
  9. 总纲篇:产品结构设计指导VII(本博客指引章节)
  10. 电力系统matlab仿真论文,基于MATLABSimulink的电力系统仿真 实验论文.doc
  11. os系统 测试网络软件,iStumbler For Mac v103.43 WiFi 信号强度检测工具 _ 黑苹果乐园...
  12. .net开通exchange邮箱
  13. 日本雅虎API电商接口获取方法 批量发布、订单获取、后台操作等
  14. DDE实现动态数据交换
  15. 鹿晗关晓彤公开恋情,是如何把新浪微博的服务器搞垮的?
  16. 利用IMU进行激光点云运动畸变校正
  17. Java版本企业招投标采购管理系统源码 一站式全流程采购招标系统
  18. 西北工业大学计算机学院王鹏,王鹏的个人主页-西北工业大学教师个人主页
  19. 老程序员教你如何提高开发效率、成为大神4——快速学习方法
  20. 利用Grafana为你的Loki添加告警

热门文章

  1. matlab|求导数/最值
  2. linux xampp开始伪静态,Linux XAMPP下启用WordPress的自定义文件名(伪静态)功能
  3. Win7 3264位纯净版下载地址
  4. NORD SK 132 M/4 BRE100 FHL起心动念,随遇而安
  5. 开心汽车公布2020年年报:林明军将持股22%,海淘车亏损20万美元
  6. Python程序退出时执行指定代码
  7. 中国抓到了勒索病毒作者,上市公司停工3天
  8. 1.1.2版iPhone中文汉化简易使用教程
  9. 吃鸡为什么显示语音服务器异常,为什么吃鸡语音开不了 | 手游网游页游攻略大全...
  10. Fabfilter 5月促销