纪中学习之(第七季)DAY SEVEN

前言

今天一早就起床了,洗漱好后,便和宿友们一起去饭堂吃汤粉去了(真好吃)······


今天做了四道题

第一题

题目大意

你的任务是计算在1至n内的正整数,有多少正整数是“合法”的?
所谓的“合法”是指:该整数属于上面给定的等差数列的某项或者属于等比数列的某项,或者既属于等差数列的项也属于等比数列的项…


输入样例

1 1 1 2 1000

输出样例

1000


解题思路

这道题目其实就是模拟加暴力
然后就判断一下特殊的情况即可

程序如下

#include
#include
#include
#include
using namespace std;
long long a,b,c,d,n,ans;
int main()
{
	freopen("shulie.in","r",stdin);
	freopen("shulie.out","w",stdout);
	scanf("%lld%lld%lld%lld%lld",&a,&b,&c,&d,&n);
	if(d!=1)//如果d等于1的话,乘起来就没意思了 还浪费空间
	{
		for(long long i=c;i<=n;i*=d)//不断相乘
		  if(i<a||(i-a)%b!=0)
		  {
			ans++;
		  }
	}
	else
	if((c-a)%b!=0&&c<=n||(c<a)&&c<n) 
	{
	    ans=1;
	}
    if(n>=a)
	{
	    ans+=(n-a)/b+1;
	} 
	printf("%lld",ans);
	fclose(stdin);
	fclose(stdout);
	return 0;
}



第二题

题目大意

在二维平面坐标轴里面,有N只蚂蚁,第i只蚂蚁所在的点的坐标是(xi, yi),坐标都是整数。所有蚂蚁的移动速度都相等,都是每秒移动1个单位。每只蚂蚁都有一个固定的移动方向,是如下4种方向之一,都是平行于坐标轴的
N表示向北(即朝上)
l E表示向东(即朝右)
l S表示向南(即向下)
l W表示向西(即向左)
当2只或多只蚂蚁在某个时刻碰撞到一起,那么这些蚂蚁都会立即消失。当所有的碰撞结束后,还有多少只蚂蚁存在?


输入样例

4

NWNE

0 0

10 10

20 20

30 30

输出样例

2


解题思路

这道题要注意一个点就是你枚举的时候要0.5的不断加,因为要避免一些特殊情况




第三题

题目大意

现在你的任务是:有多少种不同的选择方案,使得“费用”不小于给定的数min,而且不大于给定的数max,即“费用”在范围内有多少种不同的选择方案。答案模1000000007。所谓的两种不同方案是指:只要它们选中的单元格有一个不同,就认为是不同的方案。


输入样例

3 3 1 20000

输出样例

6




第四题

题目大意

(1)每棵小草都长高了,第i棵小草长高的高度是grow[i]。
(2)Bessie选择其中一棵小草并把它剪平,这棵小草高度变为0。注意:这棵小草并没有死掉,它下一秒还会生长的。
(3)Bessie计算一下这N棵小草的高度总和,如果不超过H,则完成任务,一切结束, 否则轮到下一时刻。
你的任务是计算:最早是第几时刻,奶牛Bessie能完成它的任务?如果第0时刻就可以完成就输出0,如果永远不可能完成,输出-1,否则输出一个最早的完成时刻。


输入样例

3 16

5 8 58

2 1 1

输入样例

1




今天就到这了······

明天继续更新·································

距离纪中培训倒计时3天(也就是更新到第10季)

敬请期待······

多多关注

谢谢········

你可能感兴趣的:(其它)