2017杭电多校第六场03Inversion
Inversion
Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 0 Accepted Submission(s): 0
Now we want to know Bi=maxi∤jAj , i≥2.
Each case begins with one line with one integer n : the size of array A.
Next one line contains n integers, separated by space, ith number is Ai.
Limits
T≤20
2≤n≤100000
1≤Ai≤1000000000
∑n≤700000
4
1 2 3 4
4
1 4 2 3
2 4 4
Statistic | Submit | Clarifications | Back
题意:
数组Bi的值等于下标i不整除j的最大的数组A中的值,直接给个样例解释
以1 4 2 3为例 2不能被1 、3整除,A1=1<A3=2,所以B2的值为2;
思路:
用pair将下标与value的值关联起来,以value的值从大到小排序,进行整除比较,找到最大的那个下标不能被整除的值
可以使用多中数据结构,或map或vector或list等
pair的排序重定义函数如下:
bool judge(const pair<int,int> a,const pair<int,int> b)
{
return a.first>b.first;//从大到小排序
}
代码如下:
#include<iostream>
#include<list>
#include<vector>
#include<string.h>
#include<algorithm>
#include<stdio.h>
using namespace std;
const int maxn=100006;
typedef long long ll;
ll b[maxn];
bool judge(const pair<ll,ll> a,const pair<ll,ll>b)
{
return a.first>b.first;
}
int main()
{
int t;
scanf("%d",&t);
ll a;
int n;
while(t--)
{
vector<pair<ll,ll> >vec;
memset(b,0,sizeof(b));
scanf("%d",&n);
for(ll i=1;i<=n;i++)
{
scanf("%lld",&a);
vec.push_back(make_pair(a,i));
}
sort(vec.begin(),vec.end(),judge);
for(ll j=2;j<=n;j++)
{
for(ll i=0;i<vec.size();i++)
{
if(vec[i].second%j!=0)
{
b[j]=vec[i].first;
break;
}
else continue;
}
}
for(ll i=2;i<n;i++)
printf("%lld ",b[i]);
printf("%lld\n",b[n]);
}
return 0;
}
2017杭电多校第六场03Inversion的更多相关文章
- 2017杭电多校第六场1008 Kirinriki
传送门 Kirinriki Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) To ...
- 2017杭电多校第六场1011Classes
传送门 Classes Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Tota ...
- 2017杭电多校第五场11Rikka with Competition
Rikka with Competition Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/O ...
- 2017杭电多校第五场Rikka with Subset
Rikka with Subset Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others ...
- 2018杭电多校第六场1009(DFS,思维)
#include<bits/stdc++.h>using namespace std;int a[100010];char s[20];int zhiren[100010];vector& ...
- 2017杭电多校第七场1011Kolakoski
Kolakoski Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 524288/524288 K (Java/Others) Tota ...
- 2017杭电多校第七场1005Euler theorem
Euler theorem Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 524288/524288 K (Java/Others) ...
- [2019杭电多校第六场][hdu6641]TDL
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6641 题意为求出最小的n,满足(f(n,m)-n)^n=k,其中f(n,m)为第m大的x,其中x满足g ...
- [2019杭电多校第六场][hdu6638]Snowy Smile(维护区间最大子段和)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6638 题意为在一个平面上任意选择一个长方形,使得长方形内点权和最大. 因为长方形可以任意选择,所以上下 ...
随机推荐
- JSP的过滤器
以下内容引用自http://wiki.jikexueyuan.com/project/jsp/writing-filters.html: Servlet和JSP过滤器都是Java类,可以在Servle ...
- Jsp标签字典开发_基于Spring+Hibernate
目录 1. Jsp标签字典开发_基于Spring+Hibernate 1.1. 简述 1.2. 定义DictItem实体 1.3. 定义字典的@interface 1.4. 定义字典缓存类 1.5. ...
- python: filter, map, reduce, lambda
filter built-in function filter(f,sequence) filter can apply the function f to each element of seque ...
- C# 图片识别(支持21种语言)转
来自:http://www.cnblogs.com/stone_w/archive/2011/10/08/2202397.html 图片识别的技术到几天已经很成熟了,只是相关的资料很少,为了方便在此汇 ...
- java实现floyd统计天津地铁的网站距离
一:说明 (1)使用floyd实现各个网站的计算记录和路径 (2)网站获取和初始距离依据外部文件得到 (3)结果以外部文件的形式存储 (4)网站间转乘,觉得初始值也为1 (5)代码凝视比較具体,如有疑 ...
- HDMI信号解析
参考资料:http://blog.sina.com.cn/s/blog_6cfd49b00102w00i.html: http://blog.csdn.net/gtkknd/article/detai ...
- 基于OAS设计可扩展OpenAPI
前言 随着互联网行业的兴起,开发模式已逐步转换为微服务自治:小团队开发微服务,然后通过Restful接口相互调用.开发者们越来越渴望能够使用一种“官话”进行流畅的沟通,甚至实现多种编程语言系统的自动化 ...
- 单点登录之CAS简介
cas官网http://www.ja-sig.org/products/cas/. ok,如今開始本文的重点内容解说,先来了解一下cas 实现single sign out的原理,如图所看到的: ...
- POJ3254 状压dp
Corn ...
- HDU4403 A very hard Aoshu problem DFS
A very hard Aoshu problem Time Limit: 2000/1000 MS (Java/Others) Memory ...