1024 - 河南省多校连萌(三)(写了的题)

问题 B: Kick Ass Biu

时间限制: 1 Sec 内存限制: 128 MB

提交: 113 解决: 13

题目描述

在玩Kick Ass的时候,可以发现子弹的发射与飞船的移动非常有趣。

假设屏幕是个n×mn×m(竖直为n,水平为m)的矩形,以矩形左下角为原点,水平方向为x轴,向右为正方向,竖直方向为y轴,像上为正方向,建立平面直角坐标系。你的飞船在(x1,y1)点,射击目标在(x2,y2),你向目标发出了一发子弹,然而由于网页卡顿,这枚子弹并不会触碰到目标。所以,子弹将以每秒v单位的速度继续前进,若子弹移动到屏幕边缘,将自动传送到另一边并继续移动。如:向右移动到(m,0)则下一刻从(0,0)开始继续移动,同理向上移动到(0,n)则下一刻从(0,0)开始继续移动。

现在给出nm(x1,y1)(x2,y2)v,能否通过编程回答第t秒子弹的坐标?

输入

多组测试数据,请处理到文件结束。

第一行是两个正整数nm

第二行是六个正整数x1y1x2y2vt

0<n,m<1000000<n,m<100000

0<x1,y1,x2,y2,v,t<1000000<x1,y1,x2,y2,v,t<100000

输出

对于每组测试数据请在一行输出第t秒子弹的坐标xy,中间用一个空格隔开。

结果四舍五入保留到小数点后一位

样例输入

3 3
1 1 1 2 1 1
3 3
1 1 1 2 1 2
3 3
1 1 1 2 1 3

样例输出

1.0 2.0
1.0 0.0
1.0 1.0
#include <stdio.h>
#include <stdlib.h>
#include <cmath>
#include <cstring>
#include <iostream>
#include <algorithm>
#include <queue>
#include <vector>
#include <stack>
#include <map>
#include <cmath>
using namespace std;
#define INF 0x3f3f3f3f
#define N 100000
#define mid 1e-8
#define LL long long
/********************************************************/

int main()
{
    double x, y, x1, x2, y1, y2, v, t, dx, vx, vy, n, m;

    while(~scanf("%lf%lf", &n, &m))
    {
        scanf("%lf%lf%lf%lf%lf%lf", &x1, &y1, &x2, &y2, &v, &t);
        dx=sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1));
        vx=(x2-x1)/dx*v;
        vy=(y2-y1)/dx*v;
        x=x1+vx*t;
        y=y1+vy*t;
        while(x<0.0||fabs(x-0.0)<=mid)
        {
            x+=m;
        }
        while(y<0.0||fabs(y-0.0)<=mid)
        {
            y+=n;
        }
        while(x>m||fabs(x-m)<=mid)
        {
            x-=m;
        }
        while(y>n||fabs(y-n)<=mid)
        {
            y-=n;
        }
        printf("%.1f %.1f\n", x, y);
    }
    return 0;
}

问题 D: QAQ & ORZ 的签到题

时间限制: 1 Sec 内存限制: 128 MB

提交: 834 解决: 204

题目描述

QAQ 的好朋友 ORZ,最近在做一个选拔节目的评委,对于每位选手 ORZ 想知道在这个选手以及这位选手前面的的选手中,得分最高和最低的选手的序号分别是多少....

ORZ 找了 QAQ 帮忙,但是 QAQ 最近在追火星情报局....所以你可以帮助 QAQ 解决 ORZ 的问题吗?

输入

第一行一个数 T  (1≤T≤101≤T≤10),表示 T 组测试数据

第二行一个数 n  (1≤n≤1051≤n≤105 ),表示有 n 位选手

接下来 n 行,每行一个数 a (1≤a≤1081≤a≤108),表示第 i 位选手的得分,打分总是从第一位选手开始

输出

输出从 1 ~ n 位选手中 a[i],在 1 ~ i 之间的选手中得分最高和得分最低的选手的序号分别是多少

样例输入

1
3
1
2
3

样例输出

1 1
2 1
3 1
#include <stdio.h>
#include <stdlib.h>
#include <cmath>
#include <cstring>
#include <iostream>
#include <algorithm>
#include <queue>
#include <vector>
#include <stack>
#include <map>
#include <cmath>
using namespace std;
#define INF 0x3f3f3f3f
#define N 100005
#define mid 1e-8
#define PI 3.1415926535898
#define LL long long
/********************************************************/
int a[N], min1, max1, max2, min2;

int main()
{
    int T, n;

    scanf("%d", &T);
    while(T--)
    {
        scanf("%d", &n);
        for(int i=1;i<=n;i++)
        {
            scanf("%d", &a[i]);
        }
        min1=a[1];
        max1=a[1];
        max2=1;
        min2=1;
        for(int i=1;i<=n;i++)
        {
            if(a[i]>max1)
            {
                max1=a[i];
                max2=i;
            }
            if(a[i]<min1)
            {
                min1=a[i];
                min2=i;
            }
            printf("%d %d\n", max2, min2);
        }
    }
    return 0;
}
 

问题 E: QAQ & 君临天下 || 天行九歌

时间限制: 1 Sec 内存限制: 128 MB

提交: 730 解决: 222

题目描述

QAQ~生活之余喜欢看一些动漫,说到国产动漫,QAQ 最喜欢的就属玄机了,玄机出品的动漫都很赞的说,君临天下 和 天行九歌是 QAQ 最喜欢的两部动漫了,每次看完 QAQ 对玄机的敬佩值都会分别增加 2 与 1,QAQ 记录了自己每天看的动漫名称 由 A ~ Z 26个字母代替,J :代表 君临天下,T 代表 : 天行九歌。

有一天,ORZ 突发奇想想帮 QAQ 测试一下 L ~ R 天里 QAQ 对玄机的敬佩值增加了多少,看 QAQ 能否清楚记得?

问题来了 ORZ 怎么知道 QAQ 回答的对错呢 ?所以 ORZ 想请你帮忙算出 L ~ R 天里 QAQ 对玄机的敬佩值增加的正确答案。

输入

第一行一个 T ( 1≤T≤101≤T≤10)代表有 T 组测试数据

第二行两个数 n ,m (1≤n,m≤1051≤n,m≤105),分别代表看了 n 天动漫,和 m 次查询

接下来 n 行一个 A ~ Z 的字母,表示第 i 天看的动漫名称

接下来 m 行,每行两个数 L,R (1≤L≤R≤n1≤L≤R≤n)

输出

对于每次查询,输出 L~R 天里,QAQ对玄机的敬佩值增加了多少

样例输入

1
3 3
J
A
T
1 1
1 2
2 3

样例输出

2
2
1
一开始我居然想用线段树、、、
#include <stdio.h>
#include <stdlib.h>
#include <cmath>
#include <cstring>
#include <iostream>
#include <algorithm>
#include <queue>
#include <vector>
#include <stack>
#include <map>
#include <cmath>
using namespace std;
#define INF 0x3f3f3f3f
#define N 100000
#define LL long long
/********************************************************/

int main()
{
    int a[N], T, x, y, n, m;
    char ch;

    scanf("%d", &T);
    while(T--)
    {
        scanf("%d%d", &n, &m);
        a[0]=0;
        for(int i=1;i<=n;i++)
        {
            getchar();
            scanf("%c", &ch);
            if(ch==‘J‘)
                a[i]=a[i-1]+2;
            else if(ch==‘T‘)
                a[i]=a[i-1]+1;
            else
                a[i]=a[i-1];
        }
        for(int i=0;i<m;i++)
        {
            scanf("%d%d", &x, &y);
            printf("%d\n", a[y]-a[x-1]);
        }
    }
    return 0;
}

问题 F: 小ho的01串

时间限制: 1 Sec 内存限制: 128 MB

提交: 148 解决: 59

题目描述

有一个由01组成的字符串,它好长呀--------一望无际

恩,说正题,小ho的数学不太好,虽然是学计算机的但是看见01也是很头疼的,

现在他的老师想让他计算出来包含K1的串有多少个-----呀,头要炸了!!!

小ho知道你的数学棒棒哒,所以来找你帮忙了。

输入

第一行是一个数K

第二行是一个字符串str

0 < |str| ≤ 106

输出

一个数S,代表了满足条件的个数。

样例输入

2
101010

样例输出

6
#include <stdio.h>
#include <stdlib.h>
#include <cmath>
#include <cstring>
#include <iostream>
#include <algorithm>
#include <queue>
#include <vector>
#include <stack>
#include <map>
#include <cmath>
using namespace std;
#define INF 0x3f3f3f3f
#define N 100000
#define mid 1e-8
#define LL long long
/********************************************************/

int main()
{
    int n, i, sum, k, vis[N];
    char s[N];

    scanf("%d", &k);
    n=0;
    scanf("%s", s);
    memset(vis, 0, sizeof(vis));
    for(i=0; i<strlen(s); i++)
    {
        if(s[i]==‘1‘)
            n++;
        else
            vis[n]++;
    }
    sum=0;
    for(i=k; i<=n; i++)
    {
        sum+=1+vis[i-k]+vis[i]+vis[i-k]*vis[i];
    }
    printf("%d\n", sum);
    return 0;
}
 
 
时间: 2024-10-14 00:57:41

1024 - 河南省多校连萌(三)(写了的题)的相关文章

2018 HDU多校第三场赛后补题

2018 HDU多校第三场赛后补题 从易到难来写吧,其中题意有些直接摘了Claris的,数据范围是就不标了. 如果需要可以去hdu题库里找.题号是6319 - 6331. L. Visual Cube 题意: 在画布上画一个三维立方体. 题解: 模拟即可. 代码: #include <bits/stdc++.h> using namespace std; int a, b, c, R, C; char g[505][505]; int main () { int T; cin >>

hdu 5317 RGCDQ (2015多校第三场第2题)素数打表+前缀和相减求后缀(DP)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5317 题意:F(x) 表示x的不同质因子的个数结果是求L,R区间中最大的gcd( F(i) , F(j) ),i.j在L,R区间内. 思路:因为2<=L < R<=1000000,所以他们的质因子最多的个数也就7个,也就是说1<=F(x)<=7,因为要求最大的GCD,所以只要知道在L,R区间内每个F(x)的情况就可以知道结果. 代码: 1 #include <stdio.h

hdu 5316 Magician(2015多校第三场第1题)线段树单点更新+区间合并

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5316 题意:给你n个点,m个操作,每次操作有3个整数t,a,b,t表示操作类型,当t=1时讲a点的值改成b:当t=0时,查询区间a,b之间最大的子序列和,这个子序列中的相邻的元素的原来的下标奇偶性都不同. 思路:这道题难点就在查询,其余都是模板,而根据查询,你只要分别把下一个区间的奇偶最大的情况分别比较,合并到上一个区间这样可以构建一个每个节点存有区间中奇开头偶开头,奇结尾,偶结尾这些区间情况的树.

2014多校联合三 (HDU 4888 HDU 4891 HDU 4893)

HDU 4891 The Great Pan 签到题  他怎么说你就怎么做就好了  注意做乘法时候会爆int 代码: #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; typedef long long LL; int n; char s[2000000]; int flag1, flag2, sp, ansflag;

2014多校第三场1005 || HDU 4891 The Great Pan(模拟)

题目链接 题意 : 给你n行字符串,问你有多少种理解方式.有两大类的理解 (1){A|B|C|D|...}代表着理解方式可以是A,可以是B或C或者D. (2)$blah blah$,在$$这两个符号中间,如果是不连续的空格的那个位置就有2种理解方式,可以理解为没有空格也可以理解为有空格.如果有连续N个空格的位置,那里就有N+1种理解方式. 最后所有的理解方式相乘,数据保证$一定与$匹配,{一定与匹配},不会有任何嵌套,类似{$$}或者{{}}或者${}$这种情况都不会出现,也不会有{$}这种情况

2019湖南多校第三场

解题过程 开场lfw过A,然后byf突然想到E的构造方法,WA了一发开始查错,shl中途看G,说"这不是bzoj原题吗?"拿到一血带歪榜,然后byf该出E拿到一血又带歪榜...shl写出B,之后lfw C想复杂调不出,shl WA一发C过掉 ,byf发现F题是几何题,想起了寒假刚几何起步的lfw,byf开始带着lfw想防AK题.K题shl先贪心再二分做了很久最后过掉,K题lfw想网络流,然后失败了,最后byf想出费用流,好像可以,但是shl过掉了. 赛后发现G题真的是BZOJ原题,而且

hdu-4893-Wow! Such Sequence!-线段树【2014多校第三场-J】

题意:一个初始为0的数组,支持三种操作:1.向第k个数添加d,(|d| < 2^31);2.把[l, r]区间内的数字都换成与它最相近的Fibonacci数;3.询问[l, r]区间的和. 思路:初始化Fibonacci数组,longlong 类型内90个就够用了. 线段树区间查询,用lazy标记, sgt[]记录线段树各个节点的区间和, fib_num_sum[]记录与各个叶子节点当前值最接近的Fibonacci数,传递到区间fib_num_sum[]就是区间Fibonacci数的和. 操作1

【ThinkingInC++】1、三写表达式求值

/** * 功能:表达式求值 * 时间:2014年8月3日08:27:42 * 作者:cutter_point */ #include<iostream> #include<cstdlib> #include<sstream> #include<string> using namespace std; /******************************************************************************

HDU 5344(2015多校5)-MZL&#39;s xor(水题)

题目地址:HDU 5344 题意:求所有(Ai+Aj)的异或值. 思路:可以发现(Ai+Aj)和(Aj+Ai)的异或值为0,所以最后只剩下(Ai+Ai). #include <stdio.h> #include <math.h> #include <string.h> #include <stdlib.h> #include <iostream> #include <sstream> #include <algorithm>