【OJ】2014广东省ACM热身赛题目

简介: 版权   A.Query (查询) 描述  给你一个数列{A1,A2,...An},并要求支持一系列如下的操作和查询:      1.ADD x y D:把D加到每个子序列{Ax... Ay}中。

版权

 

A.Query (查询)

描述 
给你一个数列{A1,A2,...An},并要求支持一系列如下的操作和查询: 
    1.ADD x y D:把D加到每个子序列{Ax... Ay}。比如,执行“ADD 2 4 1”,使{1,2,3,4,5}变成{1,3,4,5,5} 
    2.REVERS x y:反转子序列{Ax... Ay}。例如,执行“REVERSE 2 4 ”,使{1,2,3,4,5}变成{1,4,3,2,5} 
    3.INSERT x P:插入P在Ax之后。例如,执行“INSERT 2 4”,使{1,2,3,4,5}变成{1,2,4,3,4,5} 
    4.SUM:响应序列的总和。 
输入 
输入包含几种情况。 
对于每一种情况下,第一行包含n个(n≤100000)。 
用正整数,第二行描述的序列。 
然后如下M(M≤100000),操作和查询的数量。 
下面M行描述的操作和查询。 
上面提到的所有选项都假定有效的,并且在序列中的每个元素的取值范围是[0,1000000000]。 
输出 
对于每个“SUM”的查询,输出正确的答案。 
样例输入 
5

1 2 3 4 5

4

ADD 2 4 1

SUM

INSERT 2 4

SUM

样例输出 
18 
22 


B.Look Here(看这里 

描述 
有一个简单的几何问题。 
你被赋予n行和米界从1到n和编号为1〜米。每行中的两个点(X1,Y1),(X2,Y2)和加权值w说明。和一个圆的中心(X,Y)和半径r的说明。 
我们定义G(I)=合计(A * WJ),A = 1,如果第j线将相交或相切的第i个圈,否则A =0。(J从1到n) 
然后,我们把K作为G(I)MOD的总和2^32,(1<= I<= M)。所以k将会在二进制系统中的32位数字,你需要交换的第一个1位, K和输出它的最后16位。 
例如4252237837=(11111101011101000000000000001101),2然后我们交换的前16位和后16位,所以它成为(00000000000011011111110101110100)2 =916852。 
输入 
有多个测试案例。 
对于每一种案例,第一行包含两个整数n和m(1<=n,m<=500),表示有n行和m个圆。 
然后n行跟随描述第n行,每行包含五个整数x1,y1,x2,y2 w, (0<=x1,y1,x2,y2<=1000, 0<=w<2^32)。接下来的m行描述的m圆,每行包含三个整数x,y,r,(0<=x,y,r<=1000)指示圆的圆心为(x,y)和半径为r。 
输出 
对于每一种情况下,输出如上所述的答案。 
样例输入 
1 1 
0 0 0 1 4252237837 
0 5 1 
样例输出 
916852 



C.Code(代码)

描述 
#include<iostream>

#include<algorithm>

using namespace std;

int n,a[110000],b[110000],c[110000],d[110000];

int main() {

while(cin>>n)

{

for(int i=0;i<n;++i)  cin>>a[i];

for(int i=0;i<n;++i)  cin>>b[i];

for(int i=0;i<n;++i)  cin>>c[i];

for(int i=0;i<n;++i)  cin>>d[i];

for(int i=0;i<n;++i) 

    if(a[i]>b[i]) swap(a[i],b[i]);

for(int i=0;i<n;++i) 

    if(a[i]>b[i]) swap(c[i],d[i]);

for(int i=0;i<n;++i)

{

int ans=0;

for(int j=0;j<n;++j)

    if(a[i]<=c[j]&&d[j]<=d[i])  ans++;

    cout<<ans<<endl;

}

}

return 0;

}

即使你足够勇敢,我真的不建议你复制的代码,并马上提交。 
输入 
输入包含几种情况。 
每个情况由一个整数n开始(0<n<=100000)。 
然后跟随的4行代表a[],b[],c[]和d[]中,所有值都在于[1,100000]。 
输出 
对于每一种情况下,只是写出来如代码执行的答案。 
样例输入 

3 2 
1 4 
2 5 
2 3 
样例输出 


D.String Comes From String(s)(来自String(s)Sring) 

描述 
让Str是一个很长的字符串和s1,s2,...,sm收集short string(s)的。让我们说,在收集过滤STER当且仅当Str可覆盖从集合中的字符串。当然,对应于字符串的不同位置的子串可以相交甚至相互覆盖。更正式地说:|Str|通过表示str的长度,让str的符号被编号为1〜|Str|。然后为每个位置i Str中存在对指数l,r(1<= l<= i<= r<=|Str|),使得子Str[1 ... r]等于的元素s1 ,s2,...的集合平方米。现在,你被要求计算出不同的字符串长度的个数n通过过滤收集{si}。 
作为回答,可能会出现非常大的,所以其输出模10007。 
例如,{“cat”,“tact”}的集合可以创建2个字符串,长度6,如“catcat”或“catact”,并且没有更多。 
输入 
第一行包含两个整数n和m(1<= n<=1000,1<= m<=10)——定义字符串的长度和字符串与之相应的集合中string(s)的数量。 
接下来的m行包含的集合字符串si,每行一个。每个si是长度不超过10集可能包含相同的字符串的非空字符串。所有的字符串只包含小写字母。 
输出 
输出应该包含通过过滤收集模10007字符串的一个整数,数。 
样例输入 
2  1

a

6  2

cat

tact

样例输出 

2


本译文有版权,不以盈利,仅供学习研究所用。

目录
相关文章
蓝桥杯2013年第四届真题-带分数
蓝桥杯2013年第四届真题-带分数
51 0
|
算法
ACM刷题之路(五)最短路 Dijkstra POJ2387
ACM刷题之路(五)最短路 Dijkstra POJ2387
|
7月前
力扣周赛 -- 370周赛
力扣周赛 -- 370周赛
【PTA天梯赛】L1-011 —— L1-020 c++ 题解
【PTA天梯赛】L1-011 —— L1-020 c++ 题解
396 0
|
算法 C++ Python
【每日算法Day 63】LeetCode 第 179 场周赛题解
起床打开 leetcode,准备看看今天搞点啥题目水一水的,突然发现周赛还剩 1 小时整。看了眼题目也都挺简单的,就把 4 道题都做掉了。
|
算法 C++
【每日算法Day 77】LeetCode 第 181 场周赛题解
【每日算法Day 77】LeetCode 第 181 场周赛题解
|
人工智能 BI 网络架构
[计蒜客] ACM-ICPC 2018 南京赛区网络预赛 | 部分题解 | 线段树 + 线性筛 + 最短路(上)
E. AC Challenge 题目描述 输入 输出 样例输入 样例输出 提示 题意: A. An Olympian Math Problem G. Lpl and Energy-saving Lamps 题目描述 输入 输出 样例输入 样例输出 提示 ac_code:
168 0
[计蒜客] ACM-ICPC 2018 南京赛区网络预赛 | 部分题解 | 线段树 + 线性筛 + 最短路(上)
|
机器学习/深度学习 Go
[计蒜客] ACM-ICPC 2019 南京赛区网络预赛 | 部分题解 | 线段树 + 线性筛 + 最短路(下)
J. Nanjing Sum 题目描述 输入 输出 样例输入 样例输出 提示 L. Magical Girl Haze 题目描述 输入 输出 样例输入 样例输出 题意:
153 0
[计蒜客] ACM-ICPC 2019 南京赛区网络预赛 | 部分题解 | 线段树 + 线性筛 + 最短路(下)
|
Python
力扣双周赛49(2021-04-03)解题分享
力扣双周赛49(2021-04-03)解题分享
91 0