1289 大鱼吃小鱼 1305 Pairwise Sum and Divide 1344 走格子 1347 旋转字符串 1381 硬币游戏
1289 大鱼吃小鱼
第1行:1个数N,表示鱼的数量(1 <= N <= 100000)。
第2 - N + 1行:每行两个数A[i], B[i],中间用空格分隔,分别表示鱼的大小及游动的方向(1 <= A[i] <= 10^9,B[i] = 0 或 1,0表示向左,1表示向右)。
输出1个数,表示最终剩下的鱼的数量。
5
4 0
3 1
2 0
1 0
5 0
2
输入的先后顺序即为位置,可以以左边开始,就是如果向左游就和前面的向右游的鱼判断大小,如果没有就不要管它了(随它游吧),然后吃了的话总数减少。。。就好了。
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<iostream>
#include<cstring>
using namespace std; const int NN=;
int n,top,ans;
int a[NN]; int main()
{
scanf("%d",&n);
top=,ans=;
int x,y;
for (int i=;i<=n;i++)
{
scanf("%d%d",&x,&y);
if (y==)
{
for (;top>;top--)
if (x>a[top]) ans++;
else
{
ans++;
break;
}
}
else a[++top]=x;
}
printf("%d\n",n-ans);
}
1305 Pairwise Sum and Divide
第1行:1个数N,表示数组A的长度(1 <= N <= 100000)。
第2 - N + 1行:每行1个数A[i](1 <= A[i] <= 10^9)。
输出fun(A)的计算结果。
3
1 4 1
4
一开始还是去模拟了,发现超时,还去删除了一些头文件,真蠢,发现分母是相乘的那么向下取整,很快就为0了,排个序,找找单调性,就解决了。
#include<cstdio>
#include<algorithm>
using namespace std; typedef long long LL;
const int NN=; int n;
int a[NN]; int main()
{
scanf("%d",&n);
for (int i=;i<=n;i++)
scanf("%d",&a[i]);
sort(a+,a+n+);
LL sum=;
for (int i=;i<=n;i++)
for (int j=i+;j<=n;j++)
{
LL x=(LL)(a[i]+a[j])/((LL)a[i]*a[j]);
if (x==) break;
sum=sum+x;
}
printf("%lld",sum);
}
1344 走格子
第1行:1个数n,表示格子的数量。(1 <= n <= 50000)
第2 - n + 1行:每行1个数A[i],表示格子里的能量值(-1000000000 <= A[i] <= 1000000000)
输出1个数,对应从1走到n最少需要多少初始能量。
5
1
-2
-1
3
4
2
顺序下去,找一个最小负值就好了。
#include<algorithm>
#include<iostream>
#include<cmath>
#include<cstdio>
#include<cstring>
using namespace std; const long long INF=1e16+; int main()
{
long long x=,y,ans=INF;
int n;
scanf("%d",&n);
for (int i=;i<=n;i++)
{
scanf("%lld",&y);
x+=y;
ans=min(ans,x);
}
if (ans<) printf("%lld\n",abs(ans));
else printf("0\n");
}
1347 旋转字符串
S[0...n-1]是一个长度为n的字符串,定义旋转函数Left(S)=S[1…n-1]+S[0].比如S=”abcd”,Left(S)=”bcda”.一个串是对串当且仅当这个串长度为偶数,前半段和后半段一样。比如”abcabc”是对串,”aabbcc”则不是。
现在问题是给定一个字符串,判断他是否可以由一个对串旋转任意次得到。
第1行:给出一个字符串(字符串非空串,只包含小写字母,长度不超过1000000)
对于每个测试用例,输出结果占一行,如果能,输出YES,否则输出NO。
aa
ab
YES
NO
一开始一位hash去搞,后来不想打代码,花了60去看了别人代码,发现了一个规律,如果是对串旋转后也是具有对串性质,所以直接比较就好了。
#include <iostream>
#include <cstring>
using namespace std;
char str[];
int main()
{
while(cin>>str)
{
int flag=;
int len=strlen(str);
if(len%!=)
{
cout<<"NO"<<endl;
continue;
}
for(int i=;i<len/;i++)
{
if(str[i]!=str[i+len/])
{
cout<<"NO"<<endl;
flag=;
break;
}
}
if(!flag)
cout<<"YES"<<endl;
}
return ;
}
1381 硬币游戏
有一个简单但是很有趣的游戏。在这个游戏中有一个硬币还有一张桌子,这张桌子上有很多平行线(如下图所示)。两条相邻平行线之间的距离是1,硬币的半径是R,然后我们来抛硬币到桌子上,抛下之后硬币有时候会和一些直线相交(相切的情况也算是相交),有时候不会。
请你来计算一下抛一次硬币之后,该硬币和直线相交数目的期望。
第一行给出一个整数T,表示有T组数据(1<=T<=10000)。
第2行到T+1,每行给出一个整数R。(0< R <= 10,000,000,000)
对于每一个数据,在一行中输出答案的整数部分即可。
1
1
2
一开始看到期望吓傻,然后发现输入都是整数,发现乘2就可以了(不理解的花哥图看看就知道了)。
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<iostream>
#include<cstring>
using namespace std; int n; int main()
{
scanf("%d",&n);
int x;
for (int i=;i<=n;i++)
{
scanf("%d",&x);
printf("%d\n",x*);
}
}
1289 大鱼吃小鱼 1305 Pairwise Sum and Divide 1344 走格子 1347 旋转字符串 1381 硬币游戏的更多相关文章
- 1305 Pairwise Sum and Divide
1305 Pairwise Sum and Divide 题目来源: HackerRank 基准时间限制:1 秒 空间限制:131072 KB 分值: 5 难度:1级算法题 有这样一段程序,fun会对 ...
- 1305 Pairwise Sum and Divide(数学 ,规律)
HackerRank 1305 Pairwise Sum and Divide 有这样一段程序,fun会对整数数组A进行求值,其中Floor表示向下取整: fun(A) sum = ...
- 51Nod 1305 Pairwise Sum and Divide | 思维 数学
Output 输出fun(A)的计算结果. Input示例 3 1 4 1 Output示例 4 first try: #include "bits/stdc++.h" using ...
- [51nod] 1305 Pairwise Sum and Divide 数学
有这样一段程序,fun会对整数数组A进行求值,其中Floor表示向下取整: fun(A) sum = 0 for i = 1 to A.length for j = ...
- 51nod 1305 Pairwise Sum and Divide
有这样一段程序,fun会对整数数组A进行求值,其中Floor表示向下取整: fun(A) sum = 0 for i = 1 to A.length for j = ...
- 51nod 1305:Pairwise Sum and Divide
1305 Pairwise Sum and Divide 题目来源: HackerRank 基准时间限制:1 秒 空间限制:131072 KB 分值: 5 难度:1级算法题 收藏 关注 有这样一段 ...
- Pairwise Sum and Divide 51nod
1305 Pairwise Sum and Divide 题目来源: HackerRank 基准时间限制:1 秒 空间限制:131072 KB 分值: 5 难度:1级算法题 收藏 关注 有这样 ...
- 51nod1305 Pairwise Sum and Divide
题目链接:51nod 1305 Pairwise Sum and Divide 看完题我想都没想就直接暴力做了,AC后突然就反应过来了... Floor( (a+b)/(a*b) )=Floor( ( ...
- 51Nod 1344 走格子(贪心
1344 走格子 有编号1-n的n个格子,机器人从1号格子顺序向后走,一直走到n号格子,并需要从n号格子走出去.机器人有一个初始能量,每个格子对应一个整数A[i],表示这个格子的能量值.如果A[i ...
随机推荐
- 我的项目经验总结——CDN镜像:1(初探)
前言 其实,这个标题有些大,作为一个小白,只是在实际工作中经常听闻我司的CDN服务如何如何牛B……而且我司的云服务还拿到了工信部的CDN牌照……那么,作为一个研发仔,怎么能不去了解和熟悉呢?!不过,这 ...
- 文件系统的几种类型:ext3, s…
分类: 架构设计与优化 1. ext3 在异常断电或系统崩溃(不洁关机, unclean system shutdown ).每个已挂载ext2文件系统计算机必须使用e2fsck程序来检查其一致性 ...
- HTML特殊符号、常用字符实体
HTML特殊符号对照表.常用的字符实体 最常用的字符实体 显示结果 描述 实体名称 实体编号 空格 <</td> 小于号 < < > 大于号 > ...
- 201521123107 《Java程序设计》第13周学习总结
第13周-网络 1.本周学习总结 2.书面作业 1. 网络基础 1.1 比较ping www.baidu.com与ping cec.jmu.edu.cn,分析返回结果有何不同?为什么会有这样的不同? ...
- 201521123064 《Java程序设计》第6周学习总结
1. 本章学习总结 1.1 面向对象学习暂告一段落,请使用思维导图,以封装.继承.多态为核心概念画一张思维导图,对面向对象思想进行一个总结. 注1:关键词与内容不求多,但概念之间的联系要清晰,内容覆盖 ...
- 控制结构(8) 线性化(linearization)
// 上一篇:管道(pipeline) // 下一篇:程序计数器(PC) "编程语言不过是一个工具,什么语言都一样","编程语言能改变人的思维,不同的语言会带给你不同的思 ...
- 201521123037 《Java程序设计》第12周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多流与文件相关内容. I/O流.本质上是一个数据序列:最基本的可处理数据单位为byte. 1.1 分类:输入流(读数据),输出流(写 ...
- Java :内部类基础详解
可以将一个类的定义放在另一个类的定义内部,这就是内部类. 第一次见面 内部类我们从外面看是非常容易理解的,无非就是在一个类的内部在定义一个类. public class OuterClass { pr ...
- pygame 精灵的行走及二段跳实现方法
不得不承认<Python游戏编程入门>这本书翻译.排版非常之烂,但是里面的demo还是很好的,之前做了些改编放到这里. 先是素材: 背景 精灵 所有素材均取自此书 接下来就是精灵类的创建了 ...
- hdu 6197 array array array
array array array Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others ...