E - Modular Stability Educational Codeforces Round 88 (Rated for Div. 2)

题目链接:http://codeforces.com/contest/1359/problem/E题目大意: 给n和k,求有多少个不含重复元素的序列满足,任意排序之后,对于任意整数,从前到尾进行模运算,结果都是相等的。序列元素值在1-n之间。题目思路: 首先想到,当我们碰到那个最小的数字 , 假如说,那么之后的结果就都不会发生改变了。 所以只考虑之前的那些数,要满足什么条件,模完 再模 , 结果相同呢。 不妨我们先缩小问题:...
分类: 其他 发布时间: 08-06 10:55 阅读次数: 0

Codeforces D. Berserk And Fireball(贪心)

链接:http://codeforces.com/contest/1380/problem/D题目大意: n个士兵站成一排,每个有一个能力值a[i](两两不同)。 现在有两种操作 1. 花费x的代价,击败连续的k个士兵。 2. 花费y的代价,选择两个相邻的,大的击败小的。 问留下所给的另外一个序列b的士兵,最小代价。题目思路: 明显是根据b序列把各个a序列区间按照分开,然后把这些段儿删掉即可,如果思考...
分类: 其他 发布时间: 08-06 10:54 阅读次数: 0

Peter and Snow Blower Codeforces 614C (计算几何,点距离多边形最近距离)

题目链接:http://codeforces.com/problemset/problem/614/C题目大意:      下雪了,于是小明买了个多边形的扫雪器,多边形只能围绕一个点做圆周运动,那么给出这个点,以及顺时针给出多边形的各个点求这个多变形做圆周运动扫过的面积。思路:       样例已经给了很清楚的解释。所能扫到最远的距离的一定是多边形的某个顶点,所以最远的确定下来了。..._gis计算点与多边形/边界之间的距离
分类: 其他 发布时间: 08-06 10:54 阅读次数: 0

CSP认证201812-3 CIDR合并(超详细解析---大模拟)

题目链接粘贴读者需要账号才能看到,所以这里不再张贴。(本人模拟黑洞,如有口胡错误不要介意,嘻嘻_csp201812_3
分类: 其他 发布时间: 08-06 10:54 阅读次数: 0

CSP认证 201809-4再卖菜 (查分约束100)

各位肯定都读懂题了,直接上思路了。设第二天的第i位的价格是yi ,第一天第i位的价格是xi 。我们已知y的序列,求x的。首先Y1由x1和x2得来 , 关系是(x1+x2)/2=y1Y2由x1,x2和x3得来,关系是(x1+x2+x3)/3=y2;.....此处省略一群公式Yn由x n-1和xn得来,关系是(xn+xn-1)/2=yn;由于Y序列都是向下取整得来的..._csp 差分约束
分类: 其他 发布时间: 08-06 10:54 阅读次数: 0

关于树上dfs序的一个例题的思考

题目大意:给定一棵有 n 个节点的树,初始每个点的点权为 0 ,有 m 个操作,分为两类:第一类:1 x ,询问 x 节点的权值;第二类:2 x y w ,对节点 x 到节点 y 路径上所有点的点权加 w。n, m <= 4e5u, v, x, y <= nz <= 1e9题目思路: (需要前置技能,树状数组+树上dfs+lca..._树上dfs例题
分类: 其他 发布时间: 08-06 10:54 阅读次数: 0

L - Working Plan (贪心) 2018-2019 ACM-ICPC, Asia Seoul Regional Contest

题目大意: 给m个人,和n天,然后再给一个人连续工作的天数w,和他工作w天之后要休息h天才能再次开始w天的工作。 给出m个人一共要工作的天数,和n天每天的工作天数,求是否有可行解。 说白了,就是给一个n*m的矩阵,然后起初全是0,往里边填1,对于每个人填1只能连着w个一起填,然后休息h天后才能再填。问是否有可行解。 题目思路: ...
分类: 其他 发布时间: 08-06 10:54 阅读次数: 0

2018-2019 ACM-ICPC, Asia Seoul Regional Contest ( TV Show Game )2-SAT

花了几天时间肝了几道2-SAT的题。越做题越会发现,这个东西挺模板的了解原理之后只要会建边基本上就做出来了(除非加什么花里胡哨的二分)。这篇博客写一个Seoul区域赛场的一个2-SAT问题。读者可以去codeforces.com的gym搜seoul然后倒数第二题就是这道题了。首先我们捋一下2-SAT解决问题流程:其实2-SAT细究的话,也就是个 Tarjan求强连通分量...
分类: 其他 发布时间: 08-06 10:54 阅读次数: 0

2019 ccpc 第十四届黑龙江省赛 题解总结

首先,不得不承认,这块金牌确实是运气赶上了年份,在别的地方只有被吊打的份。最后以6题告终。虽然拿了金,但是感觉和别人差距太大了,这场简单的简单,难的太难完全是运气好了,金也没什么可往外说出去的题解(找不到重现赛,代码就不附了): A.Puzzle Game题目思路:单纯的模拟,对于一个数的后边那个数,先找有没有出现过,再在出现过的里边找距离上一个数这个位置最近出现的,然后维护a..._2019acm黑龙江省赛
分类: 其他 发布时间: 08-06 10:54 阅读次数: 0

J . Wood Processing (斜率优化dp)2019暑假牛客多校 第十场

题目链接:https://ac.nowcoder.com/acm/contest/890/J题目大意: 给一群木头,有长和宽,然后一群木头拼起来就是以最低的那个为标准,高于他的全部剪掉,问拼出k块最少浪费多少木头。题目思路: 分成k段,每段取最小的价值我们肯定要对木头从低到高进行排序。 分成k段每段最低的也就是最靠前的那个,全部的木头都要砍..._*(insn_que + i) = isa_que[i].getinsnstruct();
分类: 其他 发布时间: 08-06 10:54 阅读次数: 0

6-2 线程启动、结束,创建线程多法、join,detach

一、范例演示线程运行的开始和结束程序运行起来,生成一个进程,该进程所属的主线程开始自动运行;cout<<“I Love China!” << endl; //实际上这个是主线程在执行,主线程从main()函数返回,则整个进程执行完毕。主线程从main()开始执行,那么我们自己创建的线程,也需要从一个函数开始运行(初始函数),一旦这个函数运行完毕,就代表着我们这个线程运行结束。整个进程是否执行完毕的标志是主线程是否执行完,如果主线程执行完毕了,就代表整个进程执行完毕了;此时,_当某个线程完成后结束整个程序
分类: 其他 发布时间: 08-06 10:54 阅读次数: 0

6-3 线程传参详解,detach()大坑,成员函数做线程函数

一:传递临时对象作为线程参数1.1、要避免的陷阱1(解释1)1.2、要避免的陷阱2(解释2)class A{ public: mutable int m_i; //const下也能修改 //类型转换构造函数 A(int a):m_i(a){cout<<构造函数执行<<this<<threadid=<<std::this_thread::get_id()<<endl;} A(const A &a):m_i(a.m_i_detach线程全局变量
分类: 其他 发布时间: 08-06 10:54 阅读次数: 0

6-4 创建多个线程、数据共享问题分析、案例代码

一:创建和等待多个线程a、多个线程执行顺序是乱的,跟操作系统内部对线程的运行调度机制有关;b、主线程等待所有子线程运行结束,最后主线程结束,推荐这种join的写法,更容易写出稳定的程序;c、把thread对象放入到容器里管理,看起来像个thread对象数组,这对我们一次创建大量的线程并对大量线程进行管理很方便。//线程入口函数void myprint(int inum){ cout<<myprint线程开始执行了,线程编号=<<inum<<endl;_将多个支付放入线程中
分类: 其他 发布时间: 08-06 10:54 阅读次数: 0

6-5 互斥量概念、用法、死锁演示及解决详解

一:互斥量(mutex)的基本概念保护共享数据,操作时,某个线程用代码把共享数据锁住、操作数据、解锁,其他想操作共享数据的线程必须等待解锁,锁定住,操作,解锁。互斥量是个类对象。理解成一把锁,多个线程尝试用lock()成员函数来加锁这把锁头,只有一个线程能锁定成功(成功的标志是lock()函数返回),如果没锁成功,那么流程卡在lock()这里不断的尝试去锁这把锁头;class A{public: //把收到的消息(玩家命令)入到一个队列的线程 void inMsgRecvQueue() {_互斥量概念
分类: 其他 发布时间: 08-06 10:54 阅读次数: 0

6-6 unique_lock详解

class A{public: std::unique_lock<std::mutex> rtn_unique_lock() { std::unique_lock<std::mutex> tmpguard(my_mutex1); return tmpguard;//从函数返回一个局部的unique_lock对象是可以的。 //返回这种局部对象tmpguard会导致系统生成临时unique_lock对象,并调用unique_lock的移动构造函数 } //把收到_unique_lock 初始状态
分类: 其他 发布时间: 08-06 10:54 阅读次数: 0

6-7 单例设计模式共享数据分析、解决,call_once

一:设计模式大概谈“设计模式”:代码的一些写法(这些写法跟常规写法不怎么一样);程序灵活,维护起来可能方便,但是别人接管、阅读代码都会很痛苦;用“设计模式”理念写出来的代码很晦涩;《head first》老外应付特别大的项目的时候,把项目的开发经验、模块划分经验,总结整理成设计模式(现有开发需求,后有理论总结和整理);设计模式拿到中国来,不太一样,拿着一个程序(项目)往设计模式上套;一个小小的项目,它非要弄几个设计模式进去,本末倒置设计模式肯定有它独特的优点,要活学活用,不要深陷堪中,生搬硬套;
分类: 其他 发布时间: 08-06 10:54 阅读次数: 0

6-8 condition_variable、wait

一:条件变量std::condition_variable、wait()、notify_one()线程A:等待一个条件满足线程B:专门往消息队列中扔消息(数据)std::condition_variable实际上是一个类,是一个和条件相关的一个类,说白了就是等待一个条件达成。这个类是需要和互斥量来配合工作,用的时候我们要生成这个类的对象;class A{public: std::unique_lock<std::mutex> rtn_unique_lock() { std:
分类: 其他 发布时间: 08-06 10:54 阅读次数: 0

6-9 async、future、packaged_task、pro

一:std::async、std::future创建后台任务并返回值希望线程返回一个结果;std::async是个函数模板,用来启动一个异步任务,启动起来一个异步任务之后,他返回一个std::future对象,std::future是个类模板。什么叫”启动一个异步任务“,就是自动创建一个线程并开始执行对应的线程入口函数,它返回一个std::future对象,这个std::future对象里边就含有线程入口函数所返回的结果(线程返回的结果);我们可以通过调用future对象的成员函数get()来获取。
分类: 其他 发布时间: 08-06 10:54 阅读次数: 0

6-10 future其他成员函数、shared_future、ato

一:std::future的其他成员函数int mythread(){ cout<<mythread() start<<threadid=<<std::this_thread::get_id()<<endl;//新的线程id std::chrono::milliseconds dura(5000);//1秒=1000毫秒,所以5000毫秒=5秒 std::this_thread::sleep_for(dura); //休息一定的时长 cou
分类: 其他 发布时间: 08-06 10:54 阅读次数: 0

6-11 std atomic续谈、std async深入谈

一:原子操作std::atomic续谈一般atomic原子操作,针对++,–,+=,&=,|=,^=是支持的。std::atomic<int> g_mycout = 0;//这是个原子整型类型变量;可以向使用整型变量一样使用void mythread(){ for(int i = 0;i<1000000;i++) { g_mycout++; //对应的操作就是原子操作,不会被打断; g_mycout +=1; g_mycout = g_mycout + 1;_atomicg_count
分类: 其他 发布时间: 08-06 10:54 阅读次数: 0