t3

LOJ分块⑨题汇总

こ雲淡風輕ζ 提交于 2020-04-06 16:16:47
从零开始的分块学习系列(感谢hzwer) 题目顺序是我建议的做题顺序 先说一句:分块的核心思想(其实本身分块就可以说是一种思想)是:均摊(或者说平衡/权衡?)复杂度,同时这种思想本身不只局限于序列分块(前一篇解题里有提到) 序列分块之① 区间加法+单点查询 分块入门题 知道分块的思想之后应该都会做,对整块打标记,对不超过块大小的零散区间暴力修改;查询的时候就是原数+所在块的标记 1 #include<cmath> 2 #include<cstdio> 3 #include<cstring> 4 #include<algorithm> 5 using namespace std; 6 const int N=50005,Sq=230; 7 int a[N],blo[N],laz[Sq],pts[Sq][2]; 8 int n,m,t1,t2,t3,t4,cnt,sqr; 9 int main() 10 { 11 scanf("%d",&n),m=n; 12 pts[cnt=1][0]=1,sqr=sqrt(n)+10; 13 for(int i=1;i<=n;i++) 14 { 15 scanf("%d",&a[i]); 16 blo[i]=(i-1)/sqr+1; 17 if(i%sqr==0) 18 { 19 pts[cnt++][1]=i; 20 pts[cnt][0]=i+1

matlab笔记本

蹲街弑〆低调 提交于 2020-03-17 20:32:22
str = [ 'T1 ',num2str(T1),' T2 ',num2str(T2),' T3 ',num2str(T3),' sigema_n ',num2str(sigema_n),' tao_n ',num2str(tao_n)]; disp(str) 来源: https://www.cnblogs.com/xdd1997/p/12512724.html

Hankson的趣味题

生来就可爱ヽ(ⅴ<●) 提交于 2020-03-11 21:47:29
【问题描述】 Hanks博士是BT(Bio-Tech,生物技术)领域的知名专家,他的儿子名叫Hankson。现在,刚刚放学回家的Hankson正在思考一个有趣的问题。 今天在课堂上,老师讲解了如何求两个正整数c1和c2的最大公约数和最小公倍数。现在Hankson认为自己已经熟练地掌握了这些知识,他开始思考一个“求公约数”和“求公倍数”之类问题的“逆问题”,这个问题是这样的:已知正整数a0,a1,b0,b1,设某未知正整数x满足: 1、 x和a0的最大公约数是a1; 2、 x和b0的最小公倍数是b1。 Hankson的“逆问题”就是求出满足条件的正整数x。但稍加思索之后,他发现这样的x并不唯一,甚至可能不存在。因此他转而开始考虑如何求解满足条件的x的个数。请你帮助他编程求解这个问题。 【输入】 输入文件名为son.in。第一行为一个正整数n,表示有n组输入数据。接下来的n行每行一组输入数据,为四个正整数a0,a1,b0,b1,每两个整数之间用一个空格隔开。输入数据保证a0能被a1整除,b1能被b0整除。 【输出】 输出文件son.out共n行。每组输入数据的输出结果占一行,为一个整数。 对于每组数据:若不存在这样的x,请输出0; 若存在这样的x,请输出满足条件的x的个数; 【输出输出样例】 son.in 2 41 1 96 288 95 1 37 1776 son.out 6 2

Tseitin算法

房东的猫 提交于 2020-02-26 17:29:11
Tseitin算法举例 Tseitin算法是一个在线性时间内将命题公式转化为CNF范式的算法。 Convert the following formula into CNF with Tseitin’s transformation: 将以下命题公式转化为CNF范式: ( P → ( ¬ Q ∧ R ) ) ∧ ( P → ¬ Q ) (P \to (\lnot Q \land R)) \land (P \to \lnot Q) ( P → ( ¬ Q ∧ R ) ) ∧ ( P → ¬ Q ) The original formula is equivalence to ( ¬ P ∨ ( ¬ Q ∧ R ) ) ∧ ( ¬ P ∨ ¬ Q ) (\neg P\vee (\neg Q\wedge R))\wedge (\neg P \vee \neg Q) ( ¬ P ∨ ( ¬ Q ∧ R ) ) ∧ ( ¬ P ∨ ¬ Q ) Tseitin算法开始 So we have T 1 ↔ T 2 ∧ T 3 T_{1}\leftrightarrow T_{2}\wedge T_{3} T 1 ​ ↔ T 2 ​ ∧ T 3 ​ T 2 ↔ ¬ P ∨ T 4 T_{2}\leftrightarrow \neg P\vee T_{4} T 2 ​ ↔ ¬ P ∨ T 4 ​ T 3

java 多线程的状态迁移 常用线程方法分析

北城以北 提交于 2020-02-14 23:43:52
一、线程的各个状态   图中的线程状态(Thread.Stat 中定义的Enum 名)NEW、RUNNABLE 、TERMINATED、WAITING、TIMED_WAITING 和BLOCKED 都能够通过Thread 类的getState 方法获取。 由图中可以看到: 1、 sleep 方法 只有timed_waiting ,是Thread的静态方法,可以通过 Thread类名调用 ,也可以 用线程对象调用 ,执行 sleep方法不释放锁 ,只 让出CPU等待 ,是给其他线程执行机会的最佳选择; 2、wait方法notify、notifyAll方法只能在加锁的代码 synchronized(obj) 中使用,用被锁住的资源 Object.wait() 调用,wait()之后, 释放对象锁 ,进入 等待队列 ,被其他程序notify或者超时之后进入 同步队列, 去争夺锁。 3、 I/O操作类似sleep,是不会释放锁 。 4、在线程thread2中调用thread1.join()方法,则thread2线程会等待thread1线程执行完毕后才会继续执行,等待过程不会释放锁。(可参考下文代码) 5、obj.notify()唤醒在 此对象等待队列 上等待的单个线程,选择是任意性的。notifyAll()唤醒在此对象等待队列上等待的所有线程 6、Thread.yield()

[NOIP2004 虫食算]

半腔热情 提交于 2020-02-04 09:52:50
[关键字]:搜索 [题目大意]:不说了,自己找吧…… //=================================================================== [分析]:首先按照字母出现的顺序进行搜索,搜索每个字母分别代表什么数字。在每次搜索时都要剪枝,就是把当前的已知字母带到竖式中算一遍,如果出现矛盾情况就剪枝。矛盾情况就是: 1、同一列三个数都已知但(a+b)%n!=c 2、已知两个数但计算出的第三个数已经被其他字母占用。注意这里要处理进位的情况。 [代码]: View Code #include<iostream>#include<cstdio>#include<cstdlib>#include<cstring>#include<algorithm>using namespace std;char s[4][27];int n,now;int a[27],b[27],c[27];bool goal;bool Judge(){ //for (int i=0;i<n;++i) printf("%d ",b[i]); //printf("\n"); int temp=0,k=0; for (int i=n-1;i>=0;--i) { temp=(b[s[1][i]-'A']+b[s[2][i]-'A']+k)%n; k=(b[s[1][i]-'A'

清北学堂第二次考试反思

社会主义新天地 提交于 2020-01-29 23:18:46
题目 T1[]() 满分:300 成绩:40 题目judge: T1: 不加优化:超简单的DP 然而只拿了40分,那60分时间超限了 优化:把第二层循环的作用用一个数组代替 T2:暴力是会的,特殊测试点也有把握写对 然而。。爆零了 ***全部运行错误! 原因应该是我数组开大了,结果特殊测试点也没对。 (起码应该拿30的题啊) T3:没看懂题,就照着自己理解写了 全部答案错误 这怪我没理解 关于“考试”: T2,如果只写特殊点是能拿10分的,因为贪,就写了其他 如果拿了这10分,我能拿键盘; T3运行的很慢,尽管一个也没对,却费了很长时间 最后发奖的时候,就因为T3费的时间,比其他人慢很多,连鼠标也没有。。 正统反思 这几天听课效果不太好, 老师节奏不够打代码,没有完整打几篇,都是零零散散, 时间分配不科学,晚上熬夜,白天却又很多零散时间没用 *心态:怎么说,不谦虚。考试前我认为我三个题都能拿分... 低级反思 这是考试,第一题为啥不老老实实想优化??那可是60分啊!!偏要去做下面的题 第二题为啥不光写特殊样例?哇~全RE了 第三题,连测试数据都没试就敢交???鼠标就这样没了... 来源: https://www.cnblogs.com/ZhengkunJia/p/12227834.html

CSP2019游记

Deadly 提交于 2020-01-25 15:25:31
**Day0** CSP模拟赛: t1就是模拟题 t2是期望的线性性 t3是状压dp,T3没调出来 得分:100+100+0 **CSP-S-Day1** 一个小时做完了t1,t2 看到t3,贪心的建个限制图可以做到n的4次方,莫名没过第二个样例,最后看完题解发现少讨论了头和尾的情况,还有很多细节 估分100+100+0 结果t1没开ull,分数不详 **CSP-J** 一个小时做完了t1,t2,t4,发现t3不会,想了2h还没有想出来 估分100+100+20+100 t4在洛谷95,听说有极端情况 **CSP-S-Day2** 发现t1不会做,去看t2,先把t2,t3暴力dp分写了,再写了t1的64分dp 估分64+36+40 几天后听说t1空间开大了!260兆! 来源: https://www.cnblogs.com/zhouhuanyi/p/12233048.html

oracle数据库组内排序应用

浪尽此生 提交于 2020-01-21 07:21:44
真实场景: 公司的一个内容发布网站有一张记录日志的表,我把这张表用来记录用户浏览情况。因为一个用户对同一个内容会有多次浏览,所以表中会有多个记录。原始的表结果大致如下: 查询语句: select * from jc_log where category=100 and url='1729' order by log_id desc; 现在的需求是,查询出以log_id进行降序的前30条记录结果,并且user_id是去重后的,也就是说user_id不能重复出现两次。 这个需求一开始让我毫无办法,直到到网上查询到组内排序的这个概念。 组内排序大概的意思是:先将数据进行分组,然后分别对每一组的数据进行排序。 组内排序语句: select t3.*,row_number() over(partition by t3.user_id order by t3.log_id desc) row_number from jc_log t3 where category=100 and url ='1729' 查询得到的结果如上图所示。接下来就很简单了,获取到每一组的第一个及上图数据中的row_number为1的前30条数据,然后再进行log_id排序就行了。 select t2.* from ( select t.* from ( select t3.*,row_number() over

2020.01.19比赛总结

萝らか妹 提交于 2020-01-20 03:28:37
2020.01.19比赛总结 总分:40 + 0 +30 + 0 = 70 (是的,4题还这么低分) 我luogu和LibreOJ打卡都是大吉呢 被这个2800滋了一下QAQ T1分层最短路,没想到要先分层啊啊啊啊还打错一个细节,别人都是TLE60就我WA40 T2计数题,推了个式子但假的很,不知道为什么连subtask1的分都没有 T3以为是码农题,直接上了个二维线段树当场T飞 T4看一眼就知道是模板数位DP,但一直在搞T3,这题的出题人又脏,直接就是一个100%的数据高精度明着嘲讽你,一点部分分都没,简直tm恶心 打代码之前考虑好时间分配,估算时间空间复杂度,先想清楚再打 来源: CSDN 作者: weixin_43993341 链接: https://blog.csdn.net/weixin_43993341/article/details/104041359