题意

Split a unique array into two almost unique arrays. unique arrays指数组各个数均不相同,almost unique arrays指可以删掉数后再判断。

思路

略神的数学构造题。。。 官方题解: An equivalent definition for almost unique, is arrays with at least ⌊ 2n / 3⌋ different elements. The idea is to split s into three parts. In the first part, we give uniqueness to a. In the second part, we give uniqueness to b. In the third part, we give uniqueness to both. Lets assume s is sorted. Since s is an unique array, si ≥ i for all i (0-based). The image below will give some intuition on how to split it. ais red, b is blue, the length of the bar represent the magnitude of the number. In the first and second part, we do not care about the array that we are not giving uniqueness to. We will make an example with n = 30. i = 0... 9:  assign ai = i (do not care values of b) i = 10... 19:  assign bi = i (do not care values of a) i = 20... 29:  assign bi = 29 - ia takes the remains. From i = 20, a will have strictly increasing values starting from at least 11.

代码

[cpp] #include <iostream> #include <cstdio> #include <cmath> #include <algorithm> #include <string> #include <cstring> #include <vector> #include <set> #include <stack> #include <queue> #define MID(x,y) ((x+y)/2) #define MEM(a,b) memset(a,b,sizeof(a)) #define REP(i, begin, end) for (int i = begin; i <= end; i ++) using namespace std; typedef long long LL; struct num{ int value; int id; num(){} num(int _id, int _value){id = _id; value = _value;} }; bool cmp(num n1, num n2){ return n1.value < n2.value; } typedef vector <num> VI; VI v; int a[100005], b[100005]; int main(){ //freopen("test.in", "r", stdin); //freopen("test.out", "w", stdout); int n; scanf("%d", &n); REP(i, 0, n-1){ int tmp; scanf("%d", &tmp); v.push_back(num(i, tmp)); } sort(v.begin(), v.end(), cmp); int d = (int)ceil((double)n/3); for (int i = 0; i < min(n, d); i ++){ a[v[i].id] = i; b[v[i].id] = v[i].value - a[v[i].id]; } for (int i = d; i < min(n, d*2); i ++){ b[v[i].id] = i; a[v[i].id] = v[i].value - b[v[i].id]; } for (int i = 2*d; i < n; i ++){ b[v[i].id] = n - 1 - i; a[v[i].id] = v[i].value - b[v[i].id]; } puts("YES"); for (int i = 0; i < n-1; i ++) printf("%d ", a[i]); printf("%d\n", a[n-1]); for (int i = 0; i < n-1; i ++) printf("%d ", b[i]); printf("%d\n", b[n-1]); return 0; } [/cpp]

转载于:https://www.cnblogs.com/AbandonZHANG/p/4114108.html

CodeForces 297C Splitting the Uniqueness (脑补构造题)相关推荐

  1. CVPR2022 | 只用一张图+相机走位,AI就能脑补周围环境,来自华人团队

    明敏 发自 凹非寺 量子位 | 公众号 QbitAI 站在门口看一眼,AI就能脑补出房间里面长什么样: 是不是有线上VR看房那味儿了? 不只是室内效果,来个远景长镜头航拍也是so easy: 而且渲染 ...

  2. 陈道明还原度最高!AI 脑补宋明清皇帝长相,四大模型构想真实五官

    来源:  hyperAI超神经 本文约1900字,建议阅读5分钟 本文为你介绍了AI修复古老视频.还原历史人物. 近期AI 修复古老视频.还原历史人物的风潮在国内外格外流行,让广大网友都过足了穿越瘾. ...

  3. 用「我的世界」自动生成「现实世界」:英伟达展示AI脑补新技术

    点击上方"AI遇见机器学习",选择"星标"公众号 重磅干货,第一时间送达 来自:机器之心 Minecraft 里面自建像素风世界不够过瘾?英伟达:那就让 AI ...

  4. 【CVPR 2022】只用一张图+相机走位,AI就能脑补周围环境

    来源:量子位 站在门口看一眼,AI就能脑补出房间里面长什么样: 是不是有线上VR看房那味儿了? 不只是室内效果,来个远景长镜头航拍也是so easy: 而且渲染出的图像通通都是高保真效果,仿佛是用真相 ...

  5. 《GTA 5》走进现实!AI逼真还原游戏街景,还能“脑补”细节 | 英特尔出品

    来源:AI科技评论 作者:琰琰 编辑:刘冰一 在不少玩家眼中,GTA 5(GTA V)称得上是一款旷世神作! GTA 也叫"侠盗猎车手",是R星旗下一款超高人气动作冒险类游戏,目前 ...

  6. “脑补”的科学依据:眼前的黑不是黑,靠得是你的大脑

    一个在眨眼的婴儿 | 图片来源:Leungcho Pan/Shutterstock 撰文:Mindy Weisberger 来源:科研圈 编译:向菲菲 人们常说:"别眨眼,精彩稍纵即逝.&q ...

  7. 只用一张图+相机走位,AI就能脑补周围环境,来自华人团队 | CVPR2022

    明敏 发自 凹非寺 量子位 | 公众号 QbitAI 站在门口看一眼,AI就能脑补出房间里面长什么样: 是不是有线上VR看房那味儿了? 不只是室内效果,来个远景长镜头航拍也是so easy: 而且渲染 ...

  8. 这年头,机器翻译都会通过文字脑补画面了 | NAACL 2021

    博雯 发自 凹非寺 量子位 报道 | 公众号 QbitAI 现在,想象一个外国人面前摆了句「金石迸碎荡尘埃,磐山纡水尽为开」. 除了痛苦地死抠复杂单词和长难句语法,他还能怎么去理解这句话呢? --想象 ...

  9. 神“脑补”!只要一段话,就知道你的说话手势 | UC伯克利

    乾明 发自 凹非寺  量子位 报道 | 公众号 QbitAI 防不胜防!现在, AI只需要听你的声音,就能知道你说话手势了. 这项"脑补力"Max的新研究,来自UC伯克利大学等机构 ...

  10. CodeForces 459C(构造题)

    http://codeforces.com/problemset/problem/459/C /** 题意:有n个同学,k辆车,d天(每天n个同学去一个地方)问经过d天后,任意的多个同学不能总在一起d ...

最新文章

  1. marquee实现文字移动效果;js+div实现文字无缝移动效果
  2. KindEditor富文本编辑器, 从客户端中检测到有潜在危险的 Request.Form 值
  3. 基于Lock的卖票和生产者消费者案例
  4. mysql c api简单连接池
  5. 打开access文件 提示文件名无效_分享在PS软件打开图像时提示无效的JPEG的解决方法...
  6. Vue组件创建和组件传值
  7. c语言作业大全,C语言练习题(答案)
  8. WireGuard简单配置
  9. 后盾网ThinkPHP微博项目
  10. protobuf 中 repeated fields 细节
  11. MySQL必知必会pdf
  12. 网箱补网水下机器人电控调试日志-驱动水下推进器-Day1
  13. oracle ORA-00001: 违反唯一约束条件
  14. oracle rac 关闭asm,11G rac的ASM无法关闭
  15. 扩展坞可以把手机投到显示器吗_连接手机与屏幕的桥梁,ORICO多功能扩展坞体验...
  16. linux 画面好 游戏,2017年13款画面最优秀的游戏!极致画面美到惊叹
  17. 数据库中对存储过程的理解
  18. 视频教程-Android Studio 开发详解-Android
  19. 黑客流水线作业 自动吸取大量黑金
  20. mysql集群方案PXC_【Mysql】MySQL集群方案之PXC(percona xtradb cluster)

热门文章

  1. OpenCV视频生成报错 Incorrect library version loaded Could not open codec ‘libopenh264‘: Unspecified error
  2. Java之常用函数笔记
  3. CS224n--Lecture 1 Introduction and Word Vectors
  4. mysql加begin报错,MySQL存储过程例子,不能在if else里面用begin end否则会报错Error Code:1064解决...
  5. FISCO BCOS同步模块的优化策略
  6. 老年代的更新机制_魔兽世界:60年代五大“远古”机制,这根胡萝卜,可是当年的神器...
  7. Jquery学习 -千锋学习
  8. oracle帮助系统,Oracle1 0g扩展的帮助文件的安装
  9. asp定时生成静态HTML的代码
  10. lnmp团队开发环境docker环境搭建PHP7.2 mac系统为例