首页 > TAG信息列表 > lef

LEF文件笔记

LEF: 布局布线时使用到抽象出来的物理信息,用于各种不同工具之间的数据交换,主要由Tech(工艺信息描述)和Cell(标准单元描述)构成 VERSION 5.8 ;  #语法协议版本 BUSBITCHARS "[]" ; #定义bus标志符号,端口名为A[1], A[2],.....A[n]将看做bus DIVIDERCHAR "/" ; #定义分割字符   UNIT

XX Open Cup, Grand Prix of Tokyo D,L

D 二分max值为L,判定能否使用\(\leq L\)的数构造出答案。 暂时不管L的限制。此时如果我们有一组解,表示为\(c_{0},c_{1},...,c_{60}\),其中\(c_{i}\)是有多少个数在第\(i\)位为\(1\)。那么我们可以将\(c_{i}\)减\(2\),\(c_{i-1}\)加\(4\);或者\(c_{i}\)减\(4\),\(c_{i+1}\)加\(2\),构造出

UOJ246 【UER7】 套路

Description 定义区间权值的 \(s(l,r)\) 表示 \(\displaystyle\min\limits_{l\le x<y\le r}\{|a_x-a_y|\}\) 给定序列 \(a\),求最大的 \(s(l,r)-(r-l)\) \(n\le 2\times 10^5,1\le a_i\le 2\times 10^5\) Solution \(s(l,r)\) 可以通过 \(\rm DP\) 得到:\(s(l,r)=\mi

双指针/滑动窗口 优化 二分区间

二分区间: FOR(i, 1, n, 1){ int lef = 根据i来二分; int rig = 根据i来二分; } 他的时间是: O(n * logN)。 如果说,每一次的{lef, rig},满足某种单调性 即:{lef[1], rig[1]} {lef[2], rig[2]} {lef[3], rig[3]} ..... 他们满足某种单调性 可以考虑用:双指针/滑动窗口,优化成O(n

leetcode 除自身以外数组的乘积 中等

   直接看代码,比文字解释清楚 class Solution { public: vector<int> productExceptSelf(vector<int>& nums) { vector<int> res(nums.size(), 1); int lef = 1, rig = 1; for(int i = 0, j = nums.size() - 1; i < nums.size();

leetcode 旋转矩阵 中等

    可以用递归来做,每一次这当前的这一圈加入 vector<int> answer。 但需要注意,不要枚举圈数,这样代码比较难写(需要考虑的边界条件挺多的,而且很多下标还要自己算)。。可以直接枚举上下左右边界, 坑点:matrix.size() == 0,或者 matrix[0].size() == 0 的情况 class Solution { pub

省选测试38

选拔赛 先给a数组和c数组从大到小排序,D[l][r]表示分配完前K个人(A组)大于等于l,后n-K个(B组)小于等于r,枚举A组的最小分数L,D[L][L]-D[L+1][L]的和即为答案,D[L][L]和D[L+1][L]直接每次用每次dp即可,总复杂度 n^4 我们会发现随着c数组中数值的减小,对于A组,能匹配的人数在减小,对于B组,能匹

Solution -「USACO 2020.12 P」Spaceship

\(\mathcal{Description}\)   Link.   Bessie 在一张含 \(n\) 个结点的有向图上遍历,站在某个结点上时,她必须按下自己手中 \(m\) 个按钮中处于激活状态的一个才能走向其他结点或终止遍历(不能原地等待)。初始时,所有按钮都处于激活状态,按下 \(i\) 号按钮时,\(i\) 号按钮变为非激活

Luogu P2839 [国家集训队]middle

首先 [b,c] 是必选的, 然后选一段 [a,b) 的后缀和一段 (c,d] 的前缀(都可空)。 对于中位数(这里中位数采用这道题的定义)有个常见的处理方式: 二分 mid, 将 <mid 的设为 -1, 其余设为 1, 求总和, 若总和 >0, 则说明 ≥mid 的占到了一半以上, 即中位数 ≥mid。 采用这种处理方式, 二分中位数, 由

OOP & Pointer: Segment Tree

OOP & Pointer: Segment Tree 前段时间有学了程设的同学问了我了几个题,好像要用指针实现一个链表类。 仔细回想起来,这么多年,写了这么多代码了,我从来没用指针实现过什么数据结构,也没真正写过一个什么数据结构类。 汗颜啊。 于是就写了这个 OOP & Pointer 的线段树。 我很喜欢线段树

【CF】CF1430_F Realistic Gameplay_dp

链接 codeforces 1430F 题面 题解 我们记第i波的实际控制范围为\([l_i,\min(r_i,l_{i+1}-1]\)。记\(f_i\)表示在第i波实际控制范围内把前面的所有怪物都打死至少浪费多少子弹。 每次直接\(O(n)\)往后转移即可。 实际上是可以不用\(r_i\leq l_{i+1}\)的,只用保证\(l_i\leq l_{i+1}

[HNOI2016]序列

题目   点这里看题目。 分析   考虑将所有子序列画成\(n\times n\)的表的形式,表中的元素\((x,y)\)就表示子序列\(a[x:y]\)的最小值。(\(x>y\)则\((x,y)=0\))   那么,对于一个元素\(a_i\),记它左边第一个小于它的位置为\(lef(i)\),右边第一个小于等于它的位置为\(rig(i)\)。那么,在

【数组】977. 有序数组的平方

题目:     解答: lef和rig分别指向左右的数,比较并从最大位开始装。 1 class Solution { 2 public: 3 vector<int> sortedSquares(vector<int>& A) 4 { 5 int len = A.size(); 6 vector<int> ans(len); 7 int a = 0, b = len - 1, i

无敌浩克

# 题意n种牌,m张king ,每种牌有a[i] 张,每次可以并且只能使用1张king 代替任意一种,并且每套牌中只能用一张king,组成一套牌,问最多可以有套牌 # 题解二分答案Check 如果某种牌的数量少于当前二分的值,则最起码也要用king牌补充,才有可能组成x套牌,如果king牌全部用光后,仍有少于x张的牌,说

dtoi4680 红黑兔

题意:      给定一个字符串,长度小于等于500000。让你找一个二元组序列(l[i],r[i]),使得区间[l[i+1],r[i+1]]的字符串是区间[l[i],r[i]]的子串。求最长的序列长度。 题解:      首先有一个贪心的想法,第i个字符串肯定恰好比第i+1个字符串多一个字符。      考虑对于位置i,如何

LEF 格式

LEF 文件是布局布线根据使用的cell 几何信息库的文件格式,下面是一个LEF文件的部分,右边是对他的解释。布局布线工具将根据LEF文件的信息决定怎样布局,怎么走线,怎样生成通孔。 VERSION 5.5;版本说明 NAMESCASESITIVE ON;LEF 区分格式大小写。 BUSBITCHARS "< >";  设置定义bus标志

ODT(珂朵莉树)

洛谷题解上说珂朵莉是最可爱的女孩,XX不服,于是发表了这篇ODT模板 原题 CF896C #include <cstdio>#include <set>#include <vector>#include <algorithm>#include <cmath>#include <cstring>#include <string>#include <map>#define M mutable #define P

matlab Plotting

input:  gap1Ur8.xlsx   t dis cl cd0.005 0 -0.05781 00.01 -3.00E-06 -0.03478 0.371450.015 -9.00E-06 -0.04407 0.283990.02 -2.00E-05 -0.03909 0.252750.025 -3.40E-05 -0.04029 0.244780.03 -5.20E-05 -0.03861 0.250360.035 -7.30E-05 -0.03803 0.266570.04 -9.70E-

归并排序求逆序对

  #include <cstdio>#include <iostream>#include <cstring>#include <cstdlib>#include <algorithm>#include <cmath>using namespace std;int n, a[100010], tmp[100010];long long ans;void msort(int left, int right) { if (lef

[TJOI2017] 异或和

题面       由于本题求和的优先级高于异或,所以最后其实是一坨求和之后的数再异或起来,于是我们就可以拆位做啦。     然后原问题简化成了:对于每一位,有多少区间和在这一位上是1。     假如现在处理到 2^i 这位,然后我们枚举区间右端点j,想要可以快速找到所有左端点l,满足 sum[j]

Codeforces 1066F

题意 平面上有 n 个点,且坐标均为非负整数。规定点 (i, j) 的等级为 max(i, j) 且保证不存在等级为 0 的点。现在从点 (0, 0) 出发,每次可以水平或竖直移动 1 个单位长度。在遍历完等级低于 i 的点之前,不能到达等级为 i 或更高的点。问遍历所有点的最短路长度。\(1 \leq n \leq 2 \ti

bzoj1052-HAOI2007 覆盖问题

题面描述 某人在山上种了\(N\leq 2*10^4​\)棵小树苗。冬天来了,温度急速下降,小树苗脆弱得不堪一击,于是树主人想用一些塑料薄膜把这些小树遮盖起来,经过一番长久的思考,他决定用\(3​\)个\(L*L​\)的正方形塑料薄膜将小树遮起来。我们不妨将山建立一个平面直角坐标系,设第\(i​\)棵小