next

CCF--差分约束 201809再卖菜

自作多情 提交于 2020-08-10 22:41:35
问题描述   在一条街上有n个卖菜的商店,按1至n的顺序排成一排,这些商店都卖一种蔬菜。   第一天,每个商店都自己定了一个正整数的价格。店主们希望自己的菜价和其他商店的一致,第二天,每一家商店都会根据他自己和相邻商店的价格调整自己的价格。具体的,每家商店都会将第二天的菜价设置为自己和相邻商店第一天菜价的平均值(用去尾法取整)。   注意,编号为1的商店只有一个相邻的商店2,编号为n的商店只有一个相邻的商店n-1,其他编号为i的商店有两个相邻的商店i-1和i+1。   给定第二天各个商店的菜价,可能存在不同的符合要求的第一天的菜价,请找到符合要求的第一天菜价中字典序最小的一种。   字典序大小的定义:对于两个不同的价格序列(a 1 , a 2 , ..., a n )和(b 1 , b 2 , b 3 , ..., b n ),若存在i (i>=1), 使得a i <b i ,且对于所有j<i,a j =b j ,则认为第一个序列的字典序小于第二个序列。 输入格式   输入的第一行包含一个整数n,表示商店的数量。   第二行包含n个正整数,依次表示每个商店第二天的菜价。 输出格式   输出一行,包含n个正整数,依次表示每个商店第一天的菜价。 样例输入 8 2 2 1 3 4 9 10 13 样例输出 2 2 2 1 6 5 16 10 数据规模和约定   对于30%的评测用例,2<

Codeforces 1354C2

∥☆過路亽.° 提交于 2020-08-10 22:28:15
题面 Time limit per test: 2 seconds Memory limit per test: 256 megabytes Description You are given a regular polygon with 2⋅n vertices (it's convex and has equal sides and equal angles) and all its sides have length 1 . Let's name it as 2n -gon. Your task is to find the square of the minimum size such that you can embed 2n -gon in the square. Embedding 2n -gon in the square means that you need to place 2n -gon in the square in such way that each point which lies inside or on a border of 2n -gon should also lie inside or on a border of the square. You can rotate 2n -gon and/or the square. Input

重温四大基础数据结构:数组、链表、队列和栈

谁说胖子不能爱 提交于 2020-08-10 22:06:59
前言 本文收录于专辑: http://dwz.win/HjK ,点击解锁更多数据结构与算法的知识。 你好,我是彤哥,一个每天爬二十六层楼还不忘读源码的硬核男人。 数组、链表、队列、栈,是数据结构中最基础的四大结构,数组和链表更是基础中的基础,后续所有复杂的数据结构都是在它们的基础上演变而来的。 本节,我们就来重温这四大结构。 数组 关于数组,大家都比较熟悉了。 它是一种线性数据结构,使用一组连续的内存空间存储一组具有相同类型的数据。 这个概念中有三个关键词:线性、连续、相同类型。 线性,表示没有分叉,任意元素的前后元素最多只有一个,同样是线性结构的还有链表、队列等。 连续,它在内存空间中的存储是连续的,不间断的,前后两个元素紧挨着,不存在间隙。 相同类型,数组中存储的元素的类型一定是相同的,当然,在Java中,你可以使用Object代表所有类型,本质上,它们依然是相同类型。 正是有了上面三个特性,才使得数组具有了 随机访问 的特性,那么,什么是随机访问呢? 简单点说,你可以通过下标快速定位到数组中的元素,且时间复杂度是O(1),它是怎么做到的呢? 我们知道,计算机中只有0和1,一切的一切都可以看作是0和1的各种组合,内存也是一样。 当我们创建一个数组,比如 int[] array = new int[]{2, 5, 8, 7}; 时,它其实返回的是这个数组在内存中的位置(地址)

HashMap在JDK8中的源码分析

↘锁芯ラ 提交于 2020-08-10 22:04:39
map.put(key1,value1); 首先,调用key1所在类的hashCode()计算key1哈希值,此哈希值经过某种算法计算以后,得到在Entry数组中的存放位置。 如果此位置上的数据为空,此时的key1-value1添加成功。 ----情况1 如果此位置上的数据不为空,(意味着此位置上存在一个或多个数据(以链表形式存在)),比较key1和已经存在的一个或多个数据 的哈希值: 如果key1的哈希值与已经存在的数据的哈希值都不相同,此时key1-value1添加成功。----情况2 如果key1的哈希值和已经存在的某一个数据(key2-value2)的哈希值相同,继续比较:调用key1所在类的equals(key2)方法,比较: 如果equals()返回false:此时key1-value1添加成功。----情况3 如果equals()返回true:使用value1替换value2。 补充:关于情况2和情况3:此时key1-value1和原来的数据以链表的方式存储。 在不断的添加过程中,会涉及到扩容问题,当超出临界值(且要存放的位置非空)时,扩容。默认的扩容方式:扩容为原来容量的2倍,并将原有的数据复制过来。 jdk8 相较于jdk7在底层实现方面的不同: 1. new HashMap():底层没有创建一个长度为16的数组 2. jdk 8底层的数组是:Node[]

线性表的顺序存储和链式存储c语言实现

牧云@^-^@ 提交于 2020-08-10 21:33:52
一.线性表的顺序存储 typedef int ElemType; typedef struct List { ElemType *data; // 动态分配 ,需要申请空间 int length; }List; 0.完整代码 #include <stdio.h> #include <stdlib.h> #define MaxSize 50 #define TRUE 1 #define FALSE 0 typedef int ElemType ; struct List { ElemType *data; // 动态分配 ,需要申请空间 int length; }; void InitList(List *p); // 初始化表 int ListInsert(List *p, int i,ElemType e); // 插入操作 (前插),在第i个位置插入数据e int ListDelete(List *p, int i); // 删除操作,删除第i个位置数据 int ListFindValue(List L,ElemType e); // 按值查找元素e ,返回e在顺序表表的位置 int ListFindLocate(List L, int i); // 按位查找第i位的值 int Empty(List L); // 判空,如果表为空返回TRUE void PrintList

操作系统第五次实验报告——内存管理

喜夏-厌秋 提交于 2020-08-10 18:46:59
0 个人信息 张樱姿 201821121038 计算1812 1 实验目的 通过编程进一步了解内存管理。 2 实验内容 在服务器上用Vim编写一个程序:仿真实现某个内存管理算法,测试给出结果,并对解释运行结果。 3 实验报告   3.1 记录内存空间使用情况     使用链表记录内存空间使用情况。 1 // 每个进程分配到的内存块 2 typedef struct allocated_block{ 3 int pid; // 进程号 4 int size; // 进程分配到的内存块大小 5 int start_addr; // 内存块起始地址 6 char process_name[NAME_LEN]; // 进程名 7 struct allocated_block *next; // 指向下一个内存块的指针 8 }AB; 9 10 // 进程分配内存块链表的首指针 11 AB *allocated_block_head = NULL;   3.2 记录空闲分区     同样也使用链表来记录空闲分区。 1 // 每个空闲块 2 typedef struct free_block_type{ 3 int size; // 空闲块大小 4 int start_addr; // 空闲块起始地址 5 struct free_block_type *next; // 指向下一个空闲块 6

Codeforces 1354C2

China☆狼群 提交于 2020-08-10 18:46:42
题面 Time limit per test: 2 seconds Memory limit per test: 256 megabytes Description You are given a regular polygon with 2⋅n vertices (it's convex and has equal sides and equal angles) and all its sides have length 1 . Let's name it as 2n -gon. Your task is to find the square of the minimum size such that you can embed 2n -gon in the square. Embedding 2n -gon in the square means that you need to place 2n -gon in the square in such way that each point which lies inside or on a border of 2n -gon should also lie inside or on a border of the square. You can rotate 2n -gon and/or the square. Input

CentOS7 —— Kickstart + PXE 实现无人值守自动安装

久未见 提交于 2020-08-10 18:43:08
什么是Kickstart Installations? Kickstart Installations(启动安装),实现无人值守自动化安装 Kickstart files (启动文件),安装前准备好,可用来自动执行安装。它可以保存在单个服务器系统上,支持一对多:即单个文件在多台计算机上安装CentOS 所有 Kickstart scripts (启动脚本)和日志也都会存储在目录中 启动安装的过程 启动安装的方法:DVD,NFS,FTP,HTTP/HTTPS, Hard drive (硬盘) 过程:1、创建启动文件 2、 使 Kickstart files在可移动媒体、硬盘驱动器或网络位置上可用 3、创建启动介质(安装源),用于开始安装 4、使安装源可用 5、启动Kickstart Installations 创建启动文件 如果有安装好的CentOS,在 /root 目录下就会生成一个 anaconda-ks.cfg 文件。 PS: # 为需root用户执行; $ 为任意用户执行,以下均以此标准 一:可以按照对CentOS的要求通过 ios 镜像先装一下,这样就可以拿到一份不怎么需要修改的 Kickstart 配置文件 # cd /root 》 ls 》 anaconda-ks.cfg 二:使用 Kickstart Configuration Tool 来创建和修改

Azure Application Gateway(一)对后端 Web App 进行负载均衡

天大地大妈咪最大 提交于 2020-08-10 18:41:32
一,引言   今天,我们学习一个新的知识点-----Azure Application Gateway,通过Azure 应用程序网关为我么后端的服务提供负载均衡的功能。我们再文章头中大概先了解一下什么是应用程序网关。   Azure Application Gateway 是一种 应用程序层(OSI 层 7)负载均衡,Azure 应用程序网关可以执行基于 URL 的路由。而上一篇介绍的 Azure Load Balancer 则是传输层(OSI 层 4 - TCP 和 UDP)进行操作,并基于源 IP 地址和端口将流量路由到目标 IP 地址和端口。 简单来讲,四层就是基于IP+端口的负载均衡;七层就是基于URL等应用层信息的负载均衡。通过微软官方提供的文档,我们可以看到 Applcation Gateway 做了如下优化。 1,SSL/TLS终结 2,SKU为 “Standard” 或者 “WAF_v2” 的应用程序网关或者WAF 部署支持自动缩放, 可根据变化的流量负载模式进行扩展或缩减。 自动缩放还无需在预配期间要求选择部署大小或实例计数。 3,区域冗余 4,WAF防火墙 5, AKS 的入口控制器, 应用程序网关入口控制器 (AGIC) 允许你使用应用程序网关作为 Azure Kubernetes 服务 (AKS) 群集的入口。 6,基于URL的路由 7

Gym

▼魔方 西西 提交于 2020-08-10 18:34:18
ACM-ICPC Southeastern European Regional Programming Contest Bucharest, Romania – Vinnytsya, Ukraine October 22, 2016 Problem C Castle Input File: C.in Output File: standard output Time Limit: 0.5 seconds (C/C++) Memory Limit: 256 megabytes K. has stumbled upon a weird game while playing on his computer. The game consists of an initial string S of length N (1 ≤ N ≤ 1000) and an empty set T. The following events might occur during the game:  a character is added at the end of S, thus increasing its length by 1  the string S is added to the set T  the game master inquires: “How many strings in