Gym
来源:互联网 发布:外卖软件项目计划书 编辑:程序博客网 时间:2024/06/05 10:32
这道题应该水过的。。。不知道为什么,可能是因为被b题卡的太狠了,我们都没足够的做题经验。。哎,这道题我当天晚上就看懂了,觉得有点麻烦,其实还好啦。
给个数列,数字为标号为i+1的人杀死的人的个数。
让你输出 他们之间的杀人关系。比如 1 0 ,第一个杀了一个,第二个没杀。肯定是 1 2 1把2杀了,如果有很多中顺序,任意输出。
题目中应该是有顺序的。不然还真不好写呢。如果没有顺序的话输出输出序列就是个很麻烦的事情了。
先从到小排列(标号最小的是杀人魔耶),然后依次输出即可,注意用数字判断一下顺序,不然的话。。容易mle。。
并且,codeforce是真好,数字用int存不下也报 re。
666
#include <iostream>#include <cstdio>#include <bits/stdc++.h>using namespace std;int cmp2(int a,int b){ return a>b;}int main(){ int n; cin>>n; long long all=0; int sum=0; int flag=0; int a[200009]; for(int i=0;i<n;i++) {cin>>a[i]; all+=a[i]; if(sum>a[i]) { sum=a[i]; flag=i; } } if(all>n-1) { puts("NO"); return 0; } puts("YES"); if(all==0) return 0; vector<int>q; vector<int>p; for(int i=0;i<n;i++) { if(a[i]!=0) { //for(int j=0;j<a[i];j++) q.push_back(i+1); } if(i!=flag) { //for(int j=0;j<a[i]+1;j++) p.push_back(i+1); } } sort(q.begin(),q.end(),cmp2); sort(p.begin(),p.end(),cmp2); int j=0; for(int i=0;i<q.size();i++) { for(int x=0;x<a[q[i]-1];x++) {cout<<q[i]<<" "<<p[j]<<endl; j++; } } //cout<<j<<endl; return 0;}
0 0
- Gym
- Gym
- Gym
- Gym
- Gym
- Gym
- Gym
- Gym
- Gym
- Gym
- Gym
- Gym
- Gym
- Gym
- Gym
- Gym
- Gym
- Gym
- leetcode-1. Two Sum
- NOJ_1007
- SpringMVC与Struts2的区别与总结
- 解决android studio引用远程仓库下载慢(JCenter下载慢)
- 令人蛋疼的错误提示 0xcdcdcdcd ,0xdddddddd ,0xfeeefeee ,0xcccccccc ,0xabababab
- Gym
- 图论南阳155题 城市平乱
- js浏览器能力检测
- LC-3下汇编实现简易版四子棋的游戏
- SAP HANA SQL CREATE TRIGGER
- 0426-CSS三大特性之优先级
- 深度学习中的Data Augmentation方法(转)基于keras
- 怎么解决form表单中 disable属性不能提交的问题,form表单获得不了某个参数
- TK1学习笔记二:安装CUDA