洛谷 P1583 魔法照片
题目描述
一共有n(n≤20000)个人(以1--n编号)向佳佳要照片,而佳佳只能把照片给其中的k个人。佳佳按照与他们的关系好坏的程度给每个人赋予了一个初始权值W[i]。然后将初始权值从大到小进行排序,每人就有了一个序号D[i](取值同样是1--n)。按照这个序号对10取模的值将这些人分为10类。也就是说定义每个人的类别序号C[i]的值为(D[i]-1) mod 10 +1,显然类别序号的取值为1--10。第i类的人将会额外得到E[i]的权值。你需要做的就是求出加上额外权值以后,最终的权值最大的k个人,并输出他们的编号。在排序中,如果两人的W[i]相同,编号小的优先。
输入输出格式
输入格式:
第一行输入用空格隔开的两个整数,分别是n和k。
第二行给出了10个正整数,分别是E[1]到E[10]。
第三行给出了n个正整数,第i个数表示编号为i的人的权值W[i]。
输出格式:
只需输出一行用空格隔开的k个整数,分别表示最终的W[i]从高到低的人的编号。
输入输出样例
10 10
1 2 3 4 5 6 7 8 9 10
2 4 6 8 10 12 14 16 18 20
10 9 8 7 6 5 4 3 2 1
思路:模拟
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
int n,k;
int e[];
struct nond{
int num,id;
}v[];
int cmp(nond a,nond b){
if(a.num==b.num) return a.id<b.id;
return a.num>b.num;
}
int main(){
scanf("%d%d",&n,&k);
for(int i=;i<=;i++) scanf("%d",&e[i]);
for(int i=;i<=n;i++){
scanf("%d",&v[i].num);
v[i].id=i;
}
sort(v+,v++n,cmp);
for(int i=;i<=n;i++) v[i].num+=e[(i-)%+];
sort(v+,v++n,cmp);
for(int i=;i<=k;i++) cout<<v[i].id<<" ";
}
昨天,学妹扔我帮她调一下这个题的代码,当时时间太晚了,加上那个题目也忘了,所以看了一段时间,但是没看出来。
今天又看了一遍题目。
一眼就发现了问题所在。
#include<algorithm>
#include<iostream>
#include<cstdio>
using namespace std;
int n,k;
int e[];
struct s
{
int w;
int c;
int d;
}m[];
int cmp(s x,s y)
{
if(x.w==y.w) return x.d<y.d;
return x.w>y.w;
}
int main()
{
scanf("%d%d",&n,&k);
for(int i=;i<;i++)
scanf("%d",&e[i]);
for(int i=;i<n;i++)
{
scanf("%d",&m[i].w);
m[i].d=i+;
m[i].c=i%+;
}
sort(m,m+n,cmp);
for(int i=;i<n;i++)
for(int j=;j<;j++)
if(m[i].c==j+) m[i].w+=e[j];
sort(m,m+n,cmp);
for(int i=;i<k;i++)
printf("%d ",m[i].d);
return ;
}
/*
14 3
9 2 5 4 0 0 0 0 0 0
1 1 3 4 9 2 8 2 8 8 8 7 1 9 5 7 9
*/
这是学妹的代码。
然后,她的错误就十分显然了。
题目中有这么一句话:

这显然是她没有注意到的。
然后,这个题目改完后的代码应该是长得这个样子:
#include<algorithm>
#include<iostream>
#include<cstdio>
using namespace std;
int n,k;
int e[];
struct s
{
int w;
int d;
}m[];
int cmp(s x,s y)
{
if(x.w==y.w) return x.d<y.d;
return x.w>y.w;
}
int main()
{
scanf("%d%d",&n,&k);
for(int i=;i<;i++)
scanf("%d",&e[i]);
for(int i=;i<n;i++)
{
scanf("%d",&m[i].w);
m[i].d=i+;
}
sort(m,m+n,cmp);
for(int i=;i<n;i++) m[i].w+=e[i%];
sort(m,m+n,cmp);
for(int i=;i<k;i++)
printf("%d ",m[i].d);
return ;
}
/*
14 3
9 2 5 4 0 0 0 0 0 0
1 1 3 4 9 2 8 2 8 8 8 7 1 9 5 7 9
*/
洛谷 P1583 魔法照片的更多相关文章
- 洛谷 P1583魔法照片 & P1051谁拿了最多奖学金 & P1093奖学金
题目:https://www.luogu.org/problemnew/show/P1583 思路:sort sort sort //#include<bits/stdc++.h> #in ...
- 洛谷 P1583 魔法照片【二级结构体排序】
题目描述 一共有n(n≤20000)个人(以1--n编号)向佳佳要照片,而佳佳只能把照片给其中的k个人.佳佳按照与他们的关系好坏的程度给每个人赋予了一个初始权值W[i].然后将初始权值从大到小进行排序 ...
- (水题)洛谷 - P1583 - 魔法照片
https://www.luogu.org/problemnew/show/P1583 设计一个strcut cmp用来比较,就可以了. #include<bits/stdc++.h> u ...
- 洛谷P1583 魔法照片【模拟+排序】
一共有n(n≤20000)个人(以1--n编号)向佳佳要照片,而佳佳只能把照片给其中的k个人.佳佳按照与他们的关系好坏的程度给每个人赋予了一个初始权值W[i].然后将初始权值从大到小进行排序,每人就有 ...
- 洛谷P1583 魔法照片
https://www.luogu.org/problem/P1583 话不多说,其实就是模拟,然后,各种繁琐 #include<bits/stdc++.h> using namespac ...
- 洛谷P1583——魔法照片(结构体排序)
https://www.luogu.org/problem/show?pid=1583#sub 题目描述 一共有n(n≤20000)个人(以1--n编号)向佳佳要照片,而佳佳只能把照片给其中的k个人. ...
- Java实现 洛谷 P1583 魔法照片
import java.util.*; class Main{ public static void main(String[] args) { Scanner in = new Scanner(Sy ...
- 洛谷 U87561 魔法月饼
洛谷 U87561 魔法月饼 洛谷传送门 题目背景 \(9102\)年的中秋节注定与往年不同...因为在\(9102\)年的中秋节前夕,\(Seaway\)被告知今年的中秋节要新出一款月饼--魔法月饼 ...
- [洛谷P1822] 魔法指纹
洛谷题目连接:魔法指纹 题目描述 对于任意一个至少两位的正整数n,按如下方式定义magic(n):将n按十进制顺序写下来,依次对相邻两个数写下差的绝对值.这样,得到了一个新数,去掉前导0,则定义为ma ...
随机推荐
- 虚拟机CentOS6.8下安装JDK
CentOS6.8下 首先下载JDK,执行命令如下: wget http://download.oracle.com/otn-pub/java/jdk/8u172-b11/a58eab1ec24242 ...
- eclipse用tomcat发布网站的目录
用eclipse添加的tomcat发布网站时,在tomcat安装目录中的webapps时找不到发布的网站.这是由于eclipse的默认配置,把项目发布到别的文件夹中了.如果想发布到webapps里面, ...
- shell简单监控脚本模板
#!/bin/bash host=127.0.0.1user=adminpassword='xx'port=6032x=0check_proxy(){v=$(mysql -N -u$user -p$p ...
- weak和alias
一.强符号和弱符号 在C语言中,如果多个模块定义同名全局符号时,链接器认为函数和已初始化的全局变量(包括显示初始化为0)是强符号,未初始化的全局变量是弱符号. 根据这个定义,Linux链接器使用下面的 ...
- 【codeforces 429D】Tricky Function
[题目链接]:http://codeforces.com/problemset/problem/429/D [题意] 给你n个数字; 让你求出一段区间[l,r] 使得 (r−l)2+(∑rl+1a[i ...
- 低价购买 洛谷1108 codevs4748 dp
首先,,我相信第一问是可以做出来的,,,做不出来自行面壁思过,,, 第二问,我们可以发现,如果f[i]为1时应该将其g[i]初始化为1,当初就是因为这个wa了一个世纪,之后先考虑不需要判重时的情况,如 ...
- 洛谷 P2970 [USACO09DEC]自私的放牧Selfish Grazing
P2970 [USACO09DEC]自私的放牧Selfish Grazing 题目描述 Each of Farmer John's N (1 <= N <= 50,000) cows li ...
- 编辑距离Edit Distance 非常典型的DP类型题目
https://leetcode.com/problems/edit-distance/?tab=Description 真的非常好,也非常典型. https://discuss.leetcode.c ...
- 兔子--Android Support v4包丢失的解决的方法
在开发中,Android Support v4包丢失的解决的方法: Project->properties->Java Build Path->Libraries->Add E ...
- CIKM 2013 Paper CQARank: Jointly Model Topics and Expertise in Community Question Answering
中文简单介绍: 本文对怎样在问答社区对用户主题兴趣及专业度建模分析进行了研究,而且提出了针对此问题的统计图模型Topics Expertise Model. 论文出处:CIKM'13. 英文摘要: C ...