tl

HDU 4027 Can you answer these queries? (线段树+暴力)

霸气de小男生 提交于 2019-11-29 05:11:15
题意: 给出一段序列和两种操作,第一种操作,将x,y区间的数均开平方,第二种操作,对x,y区间进行求和。 分析: 一开始还不敢用线段树做,因为纯线段树下来根暴力枚举复杂度差不了多少,但由于开方,所以在很少次的循环里就能达到1,所以就可以直接这么做了。但题目没有说名忍耐值的范围,要是0太多这个方法也不好使。 #include<bits/stdc++.h> using namespace std; const int maxn=1e5+10; typedef long long ll; ll tree[maxn<<2]; void build(int l,int r,int i){ if(l==r){ scanf("%lld",&tree[i]); return; } int mid=l+r>>1; build(l,mid,i<<1); build(mid+1,r,i<<1|1); tree[i]=tree[i<<1]+tree[i<<1|1]; } void change(int tl,int tr,int l,int r,int i){ if(tl>r||tr<l) return ; if(tl<=l&&r<=tr&&tree[i]<=r-l+1) return; //这部很关键。 if(l==r){ tree[i]=sqrt(1.0*tree[i]); return; } int

采购接收入库外币汇率入库API

守給你的承諾、 提交于 2019-11-28 08:59:06
begin if v_header.currency_code = 'USD' then select r.conversion_rate into v_conversion_rate from GL_DAILY_RATES r where r.conversion_type = 1000 and r.from_currency = 'USD' AND R.TO_CURRENCY = 'RMB' AND TRUNC(R.CONVERSION_DATE) = TRUNC(SYSDATE) and r.status_code = 'C'; tl_rcv_transactions_interface.currency_code := 'USD'; tl_rcv_transactions_interface.currency_conversion_type := 1000; tl_rcv_transactions_interface.currency_conversion_date := trunc(sysdate); tl_rcv_transactions_interface.currency_conversion_rate := v_conversion_rate; else tl_rcv_transactions_interface.currency_code := null; tl

通过外来系统抛ERP采购接收接口,系统自动接收入库

喜你入骨 提交于 2019-11-28 08:55:22
公司有一个外部系统imes制造执行系统,通过barcode扫描二维码来获取料号等相关信息, 仓库人员通过imes上的供应商送货单,来抛转采购接收信息到erp,erp自动接收入库。 系统之前的接收方式是标准接收,erp系统抛接收单号给imes,imes再回传相关信息做入库。 可是系统现在改成了直接入库,erp不需要抛信息给imes,imes直接抛采购相关信息给erp即可。 coding如下: procedure check_interface(errbuf OUT VARCHAR2, retcode OUT VARCHAR2) is cursor c1 is select ji.rowid row_id,ji.* from jw_po_imes_erp_interface ji where ji.flag = 'Y'; v_num1 number; v_num2 number; begin DBMS_LOCK.SLEEP(5); --为防止程序成功结束,但是interface暂未删除导致 for v1 in c1 loop begin select count(*) into v_num1 from rcv_transactions_interface rti where rti.interface_source_code = 'IMES_TO_ERP' AND rti

采购接收直接入库interface导入

跟風遠走 提交于 2019-11-28 08:55:02
直接入库接收方式:把相关数据插入到两个interface之后,运行请求:采购接收导入接口程序,即可完成入库动作,也可用代码的方式run这个程序 declare tl_rcv_transactions_interface rcv_transactions_interface%rowtype; tl_MTL_TXN_LOTS_INTERFACE MTL_TRANSACTION_LOTS_INTERFACE%rowtype; tl_rcv_headers_interface rcv_headers_interface%rowtype;--header ln_request_id NUMBER; begin select po.rcv_headers_interface_s.NEXTVAL into tl_rcv_headers_interface.header_interface_id from dual; select po.rcv_interface_groups_s.NEXTVAL into tl_rcv_headers_interface.group_id from dual; tl_rcv_headers_interface.Ship_To_Organization_Id := 85; tl_rcv_headers_interface.processing_status

RMA直接接收入库Interface导入

独自空忆成欢 提交于 2019-11-28 08:52:58
采购接收入库与RMA接收入库方式分为三种: 1:直接接收(不需要接入暂收区,直接入库到仓库) 2:标准接收(先接收到暂收区,产生接收单号,再根据接收单号或订单号做接收入库) 3:检验接收(先接收到暂收区,产生接收单号,再根据接收单号或订单号做检验动作,检验合格最后再接收入库) 以下是RMA直接接收入库的Code,先填写接口表数据,然后运行标准的Concurrent,即可入库 select po.rcv_headers_interface_s.NEXTVAL into tl_rcv_headers_interface.header_interface_id from dual; select po.rcv_interface_groups_s.NEXTVAL into tl_rcv_headers_interface.group_id from dual; tl_rcv_headers_interface.processing_status_code := 'PENDING'; tl_rcv_headers_interface.receipt_source_code := 'CUSTOMER'; tl_rcv_headers_interface.transaction_type := 'NEW'; tl_rcv_headers_interface.expected_receipt

P3594 [POI2015]WIL-Wilcze doły

邮差的信 提交于 2019-11-28 08:35:58
———————————————————————————————————————————————————— 修改一次的单调队列,借助单调队列求出区间内删除达到的最大值,再借助连续增长的l,r求解,挺好的题 —————————————————————————————————————————————————— #include<bits/stdc++.h> using namespace std; long long a[2000005],n,p,d,sum[2000005],q[2000005],last=1,hd,tl,t[2000005],ans; int main() { cin>>n>>p>>d; for(int i=1;i<=n;i++){cin>>a[i];sum[i]=sum[i-1]+a[i];} for(int i=d;i<=n;i++)t[i]=sum[i]-sum[i-d]; ans=d;q[++tl]=d; for(int i=d+1;i<=n;i++) { while(hd<=tl&&t[q[tl]]<t[i])tl--; q[++tl]=i; while(hd<=tl&&q[hd]-d+1<last)hd++; while(hd<=tl&&sum[i]-sum[last-1]-t[q[hd]]>p) { last++; while(hd<=tl&&q[hd]

单调队列总结

余生长醉 提交于 2019-11-27 20:43:22
最近做了许多单调队列的题,也有了一些感悟 单调队列的题都可以用下面的代码来套 1 for(i = 1;i <= n; ++i) { 2 while(lst < L) ++lst;//or other 3 for(;lst < i; ++lst) { 4 while(hd <= tl && __ _ __) --tl; 5 q[++tl] = lst; 6 } 7 while(hd <= tl && q[hd] < L) ++hd; 8 __ = _q[hd]_; 9 } $hd$为队头,$tl$为队尾(左闭右闭),$lst$为还未插入的决策点的最左端的位置,其中代码并不是固定的,具体情况具体分析 来源: https://www.cnblogs.com/mzg1805/p/11375714.html

NOIP模拟测试19「count·dinner·chess」

被刻印的时光 ゝ 提交于 2019-11-27 13:40:17
反思: 我考得最炸的一次 怎么说呢?简单的两个题0分,稍难(我还不敢说难,肯定又有人喷我)42分 前10分钟看T1,不会,觉得不可做,完全不可做,把它跳了 最后10分钟看T1,发现一个有点用的性质,仍然认为不可实现 0分 所以T1是什么样的难题呢 即使暴力也有60分,但我楞没想出来暴力怎么打 然后我就挂掉了 t2又是什么样难题 大多数人秒切一个小时切两道, 但这次考试给了我很大启迪,也正是这次考试我才开始使劲刚T1 其实大多数T1都是比较简单的,并没有想象中那么难,这次考试对我来说意义很大 (就在模拟测试21我也认为T1很难坚持刚其实T1还是很简单的) count 题解 一共有多少种方案可以把这棵树分成大小相同的几块 题干简洁明了, 性质:我们如果能分成大小相同全为$size$大小的几块,那么只有一种方案分成大小全为$size$ 有了这条性质我们就可以愉快的打了 枚举所有n的约数打了就$AC$了(还有不要暴力枚举约数,先根号n求一下约数) 实现,假设当前我们发现这个子树累计$size$达到了约数就剪掉这个枝条 若减不掉就累加到父亲上,如果父亲减不掉且$size$已经比当前枚举约数大了,那么当前方案不可行,否则方案$++$ 例如我们枚举约数3,我们在3减不掉,5减不掉,累加到2,2判断size大了所以不可行 bool dfs(ll x,ll pre,ll num){ sz[x]=1;

Codeforces - 1203D2 - Remove the Substring (hard version) - 双指针

本小妞迷上赌 提交于 2019-11-27 09:04:24
https://codeforces.com/contest/1203/problem/D2 上次学了双指针求两个字符串之间的是否t是s的子序列。但其实这个双指针可以求出的是s的前i个位置中匹配t的最长的前缀。反过来求一次可以得到最长的后缀。 然后怎么找要删除的位置呢?暴力n^2肯定可以,然后线性写挂到自闭。 枚举位置[i,j),注意j可以取相等,所以预处理前后缀的时候把n位置的后缀也算好。 去除子串[i,j),那么剩下的就是[0,i-1]和[j,n-1]两个子串,他们匹配的长度加起来超过tl就是合法。 #include<bits/stdc++.h> using namespace std; int dpprefix[200005]; int dpsuffix[200005]; char s[200005], t[200005]; int sl, tl; void prefix() { int i = 0, j = 0; while(i < sl || j < tl) { if(i < sl && j < tl) { if(s[i] == t[j]) { dpprefix[i] = j + 1; ++i, ++j; } else { dpprefix[i] = j; ++i; } } else if(j == tl) { dpprefix[i] = tl; ++i; } else

dbus+select+tcp socket

好久不见. 提交于 2019-11-26 04:58:54
#include <dbus/dbus.h> #include <iostream> #include <unistd.h> #include <sys/select.h> #include <string.h> #include <stdlib.h> #include <stdio.h> #include <stdarg.h> #include <stdbool.h> #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <sys/ioctl.h> #include <sys/fcntl.h> #include <assert.h> using namespace std; /** * A watch bind with a fd(owned by the socket), * when fd is ready to read data or write from transport, a notify event occurs */ struct watchlist_t { DBusWatch *watch; struct watchlist_t *next; }; static struct watchlist_t *watchlist = NULL; struct