路中信息竞赛No.1解题报告
来源:互联网 发布:apache serveradmin 编辑:程序博客网 时间:2024/05/02 00:27
解题报告:
1.愤怒的大锤
(angry.cpp/c/pas)
【问题描述】
大家好,我叫王大锤!今天,我看到一个和我长得一模一样的人他叫段公子。(A:什么!你确
定一模一样?照镜子呢吧你!王:真的,听说别人叫他陈大锤。)我很生气,抓住他的头发,甩他,
使其做匀速圆周运动(A:圆周运动!你这是要闹哪样啊!),我告诉你他的身高l(m),及角速度
w(rad/s),请你求出他的臭鞋子(可看作质点)受到的向心加速度a(m/s²)。(***,打个人也能编题,
你脑子进浆糊啦!) *段公子头发这么短,长度就忽略不计了。
【输入】
第一行为两个数l,w.
【输出】
输出仅一行,为一个数a(保留两位小数,记住四舍五入)。
【输入输出样例】
【数据范围与提示】
不需要你用什么高精度。( ^_^ )/~~
输入数据可能为浮点数哦。
提示:小盆友,什么是匀速圆周运动呢?就是绕着一个点转圈圈,这个角速度中的角seita,
与原来初中学的1°啊什么的不一样,这个是用弧长/半径,比如说2π就代表着360°。这个貌似
没有用。上公式:
a=(2π)²*r/T²。对了T是周期,就是搞一圈的时间。
想要简单的公式??门儿都没有。
=====================================================================================
编者注:= = 感觉还是不知道他讲的什么东西,我再补充一点点。弧度制的角度没有单位,比如
说2π就代表着360°,但为了区分于一般数字,也可以把rad当作其单位,如2π rad,角速度即物体
单位时间内转过的角度。与角速度相关的一个物理量叫做线速度,即我们一般情况下讲的速率。
线速度v=w*r; 还有一个物理量叫转速(r),和角速度差不多,是物体单位时间内转的圈数,而周期
就是转一圈需要的时间, rT=1; 要是理解了这些那题目就和a+b没什么区别,仔细看看吧。
只能帮你们到这里了。。。要是被物理知识卡了就去揍桃子吧。
angry.in angry.out
1 6 36.00
题意:一道物理题,无类型可言。
解体:搞好保留两位小数,输入l与w,向心加速度为w²*l。
Printf(“%.2lf”,&w²*l)中,直接帮忙四舍五入了,又一步完成。解题完结。
Int Main{
Double l,w;
Cin>>l,w;
Printf(“%.2lf”,&w²*l);
Returned 0;
}
2、
2.皮蛋的姨妈
(aunt.cpp/c/pas)
【问题描述】
人的身体有时会有异常反应,皮蛋的妈妈有很多姐妹,也就是皮蛋的姨妈。她们经常会
来看望皮蛋。小姨妈每23 天来一次,大姨妈每28 天来一次,第三个姨妈33 天。在她们来
看望这天,人会在相应的方面表现不同。例如,他大姨妈来了的时候,会思维迟钝,天天喝
红糖茶。因为三个姨妈的间隔时间不同,所以通常三个反应不会落在同一天。所以,皮蛋想
知道何时三个姨妈会在同一天到。你的任务输出从给定时间d 开始(不包括给定时间)下一
次三个姨妈在同一天的时间(距给定时间的天数)。例如:给定时间为10,下次出现三个姨
妈同天的时间是12,则输出2。
【输入】
输入四个整数:a, b, c和d。a, b, c分别表示第一、第二和第三姨妈出现的时间。d 是
给定的时间,可能小于a, b, 或c。所有给定时间是非负的并且小于365, 所求的时间小于
21252。
当p = e = i = d = -1时,输入数据结束。
【输出】
从给定时间起,下一次三个姨妈同天的时间(距离给定时间的天数)。
采用以下格式:
Case 1: the next triple peak occurs in 1234 days.
注意:即使结果是1天,也使用复数形式“days”。
【输入输出样例】
【数据范围与提示】
所求时间d<21252,0≤每组数据的子数据数≤15.
PS:不要告诉皮蛋,233333,这是佐佐出的←.←
aunt.in aunt.out
0 0 0 0
4 5 6 7
-1 -1 -1 -1
Case 1: the next triple peak occurs in 21252 days.
Case 2: the next triple peak occurs in 19575 days.
皮蛋的姨妈
求最小公倍数的加强版,在给定的起始天数下求最小公倍数,写个for循环,先找出小姨妈最先出现的时候,再找大姨妈,找大姨妈时,应加上小姨妈的周期23再找,按这样再找第三姨妈,一个一个枚举吧,直到找到了,输出这个数。*注意换行。
#include <cstdio>
#include <cstdlib>
int main()
{
freopen("aunt.in","r",stdin);
freopen("aunt.out","w",stdout);
int a, b, c, d, j, no = 1;
scanf("%d%d%d%d", &a, &b, &c, &d);
while( a != -1 && b != -1 && c != -1 && d != -1)
{
for( j = d + 1; j <= 21252; j++ )
if( ( j - a ) % 23 == 0 ) break;
for(; j <=21252; j+= 23 )
if( ( j - b ) % 28 == 0 ) break;
for(; j <= 21252; j+= 23 * 28 )
if( ( j - c) % 33 == 0 ) break;
printf("Case %d", no);
printf(": the next triple peak occurs in %d days.\n", j - d );
scanf("%d%d%d%d", &a, &b, &c, &d);
no++;
}
return 0;
}
3.yoso_so泡妹子
(yoso.cpp/c/pas)
【问题描述】
从前有一个学霸,叫yoso_so,梦寐以求能够泡到很多妹子,以增长SAN值。他在梦中
来到一个n*m的街区,每一个方格里都有着一个能增长不同SAN值的妹子,为了避免上学迟
到,他从入口开始走,只能向下或向右,每走到一个方格里,就可以泡到那里的妹子,然后
便转化为他的SAN值。求他最多能增长的SAN值。
【输入】
第一行:n,m(n,m<=1000)。
接下来n行m列的整数,表示街区内每个妹子能增长的SAN值。
【输出】
一行一个最大整数sum。
【输入输出样例】
【数据范围与提示】
对于30%的数据,0<n,m<=5
对于100%的数据,0<n,m<=1000,最终答案<2^31
PS:右右出的→.→
yoso.in yoso.out
10 10
0 1 2 3 4 5 6 7 8 9
1 1 1 1 1 1 1 1 1 0
2 1 1 1 1 1 1 1 1 0
3 1 1 1 1 1 1 1 1 0
4 1 1 1 1 1 1 1 1 0
5 1 1 1 1 1 1 1 1 0
6 1 1 1 1 1 1 1 1 0
7 1 1 1 1 1 1 1 1 0
8 1 1 1 1 1 1 1 1 0
9 1 1 1 1 1 1 1 1 5
58
可以用动规做,典型的简单动规。因为题目要求只有向右和向下,所以从s[1][1]开始向右走,找到s[i][j-1],s[i-1][j]中最大的,s[i][j]+=max(s[i][j-1],s[i-1][j]);
直到结束
那么s[n][m]就是最大值。
#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
int n,m,s[1010][1010];
int main()
{
freopen("yoso.in","r",stdin);
freopen("yoso.out","w",stdout);
cin>>n>>m;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
scanf("%d",&s[i][j]);
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
s[i][j]+=max(s[i-1][j],s[i][j-1]);
cout<<s[n][m];
return 0;
}
4.任意删数
(shan.cpp/c/pas)
【问题描述】
lqms有一位学霸中的男神,男神中的学霸,那就是RY哥,为什么他那么厉害呢?那与他
每天的锻炼有关。除了每天的身体锻炼,他还进行脑部锻炼进行强化。今天,他又想到一个
蛋疼的问题。
给出两个数m和s,求出在数m中任意取出s个数字后的最大与最小值。
【输入】
一行两个数m和s,m表示要取值的数,s表示要取得个数,保证输入的数据合法。
【输出】
一行两个数,用逗号隔开。第一个表示最小数,第二个表示最大数。若开头有零,则去
掉。若全部是零则输出“0”(不包括引号)。
【输入输出样例】
【数据范围与提示】
对于30%的数据,0<m<=10^9
对于100%的数据,0<m<=10^1000
保证删除的位数小于数字原本的位数。
这是框框出的XD
shan.in shan.out
123 1 23 12
这题是有难度的,最主要的是找到思路,(最小)就是从最左边开始找,找到比后一个大的,就擦掉这个数。(最大)就是找到比后一个小的。
Erase就是擦掉这个数字。
#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
int m;
string s;
void xiao(string s);
void da(string s);
int main()
{
freopen("shan.in","r",stdin);
freopen("shan.out","w",stdout);
cin>>s>>m;
xiao(s);
da(s);
return 0;
}
void xiao(string s)
{
int f=0;
for(int i=0;i<m;i++)
for(int j=0;j<s.length();j++)
if(j==s.length()-1||s[j]>s[j+1]){
s.erase(s.begin()+j);
break;
}
int x=0;
while(s[x]=='0'){s[x]='a';x++;}
for(int i=0;i<s.length();i++)
if(s[i]!='a'){cout<<s[i];f=1;}
if(f==1)cout<<" ";
else cout<<0<<" ";
}
void da(string s)
{
int f=0;
for(int i=0;i<m;i++)
for(int j=0;j<s.length();j++)
if(j==s.length()-1||s[j]<s[j+1]){
s.erase(s.begin()+j);
break;
}
int x=0;
while(s[x]=='0'){s[x]='a';x++;}
for(int i=0;i<s.length();i++)
if(s[i]!='a'){cout<<s[i];f=1;}
if(f==1)cout<<endl;
else cout<<0<<endl;
}
5.小晖的决心
(number.cpp/c/pas)
【问题描述】
你们知道吗?其实,小晖同学在初中时科学学得很不好,连简单的原子数都不会求。但
是,他计算机学得很好,用电脑编写了各种学习外挂;这是当年他写的PASCAL计算原子数,
现在他要你重新编程。
现给出n种物质,请你编程判断该物质单分子所含原子数。输出原子数m。
【输入】
第1行输入物质种数n;
第2行到n+1行为物质的化学式。
【输出】
n行,每行代表对应的分子所含的原子数。
【输入输出样例】
【数据范围与提示】
小晖用黄一强的人头担保
对于20%的数据
*分子只含一种原子
对于另外30%的数据
*每个原子的原子数<10
对于100%的数据
1.以上化学式均正确无误
2. 1<=n<=20
3.字符串长度不超过20
4.没有结晶水合物及某些盐和碱、配合物、络合物,例如:Ag(NH3)2OH、Ca(OH)
2和Fe2(SO4)3,总之不会有括号。
number.in number.out
2
He
HCl
12
字符串的处理:一一读入,如遇到大写的字母,kk++,如遇到小写的,不管他,如遇到数字,将其输完,并kk+=(这个数字-1)。完成。因为题目说不用考虑“()”和有结晶水的分子,这样就行了。
#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
int n;
int main()
{
freopen("number.in","r",stdin);
freopen("number.out","w",stdout);
cin>>n;
char b;
scanf("%c",&b);
for(int i=1;i<=n;i++){
char a;
int kk=0;
while(scanf("%c",&a)==1&&a!='\n'){
if(a>='A'&&a<='Z')
{
kk++;
}
else if(a>='1'&&a<='9')
{
int kkk=a-'0';
while(scanf("%c",&a)==1&&a>='0'&&a<='9')
kkk=kkk*10+a-'0';
kk=kk+kkk-1;
if(a=='\n')break;
else if(a>='A'&&a<='Z'){
kk++;
}
}
}
cout<<kk<<endl;
}
return 0;
}
- 路中信息竞赛No.1解题报告
- A - No Brainer解题报告
- 第十一届北京师范大学程序设计竞赛解题报告
- ECNU第三届程序设计竞赛解题报告
- 福州大学第十二届程序设计竞赛 解题报告
- ECNU第四届程序设计竞赛解题报告
- 2015 CQU 重庆大学程序设计竞赛 解题报告
- 2015 中国大学生程序设计竞赛解题报告
- 算法竞赛入门第二版解题报告
- 智力题解题报告 No.2 62-63=1
- NOIP2015信息传递解题报告
- 解题报告 NOIP2015 信息传递
- 2014嘉杰信息杯ACM/ICPC湖南程序设计邀请赛暨第六届湘潭市程序设计竞赛 解题报告
- 智力题解题报告No.7 移动杯子
- 智力题解题报告No.8 喝汽水
- 智力题解题报告No.18 哪桶是啤酒
- 中中纳新 解题报告
- 浙江省第6届大学生程序设计竞赛解题报告
- HDOJ 1232 畅通工程 并查集
- Linux makefile 教程 非常详细,且易懂
- sigaction函数解析
- 设计模式之原型模式 c++实现以及详解
- ios-消息中心 NSNotificationCenter 的介绍
- 路中信息竞赛No.1解题报告
- libpcre.so.0 被删除怎么办?
- sprintf,strcpy,memcpy的比较
- Android中的Handler总结
- 编辑距离问题(2)——DNA序列对齐
- Openstack 自动化部署
- Android Animation学习之 viewAnimator详解
- ASP.NET MVC4入门(七)——增加搜索方法和视图
- IOS--UIView 视觉效果:圆角、阴影、边框、渐变光泽