Codeforces Round #654 (Div. 2) E F
E1 Asterism (Easy Version)
题意: 有n个敌人,编号从1到n,每个人手中有ai 个糖果。yuzhu手中一开始有x个糖果,他会先决定一个从1到n的排列P,然后他会按照排列P的顺序分别与编号为Pi 的敌人决斗,如果yuzhu手中的糖果数大于等于敌人手中的糖果数,那么yuzhu获得胜利,并且获得一个糖果,否则他会失败,并且什么也不会获得,能够使yuzhu赢得所有决斗的排列称为有效排列。 Akari根据上述观点提出了以下问题:定义 F ( x ) F(x) F ( x ) 表示x的有效排列数。给你n,p以及ai ( 2 ≤ p ≤ n ≤ 2000 , 1 ≤ a i ≤ 2000 ) (2 \le p \le n \le 2000,1 \le a_i \le 2000) ( 2 ≤ p ≤ n ≤ 2 0 0 0 , 1 ≤ a i ≤ 2 0 0 0 ) ,其中p是一个质数,要求你找出满足 F ( x ) % p ≠ 0 F(x)\%p\neq0 F ( x ) % p = 0 ,即 F ( x ) F(x) F ( x ) 和p互质这一条件的x的数量。
思路: 首先,对于任意的x和ai ,将敌人编号按照ai 大小递增排序的排列P是最有可能是有效排列的。在这个排列的基础上,如果要赢得第i次决斗(i从0开始) 那就有 x + i ≥ a i x+i \ge a_i x + i ≥ a i ,对这个式子变形就可以得到 i ≥ a i − x i \ge a_i-x i ≥ a i − x ,也就是说,在满足 x + i ≥ a i x+i \ge a_i x + i ≥ a i ,即能够成功进行到第i次决定的条件下,原本i位置上的这个数字是可以变动到 a i − x a_i-x a i − x 到i-1这些位置上去的。于是就可以开一个数组b来记录每个位置上的能够出现的数字的数目,最后符合要求的排列总数就是 ∏ b i \prod b_i ∏ b i 。 显然当 x ≥ max ( a i ) x \ge \max(a_i) x ≥ max ( a i ) 时, F ( x ) = n ! F(x)=n! F ( x ) = n ! ,由于 p ≤ n p \le n p ≤ n ,此时 F ( x ) % p = 0 F(x)\%p=0 F ( x ) % p = 0 必然成立。由于ai 的范围不大(1 ≤ a i ≤ 2000 \le a_i \le 2000 ≤ a i ≤ 2 0 0 0 ),于是可以直接暴力枚举x(1 ≤ x ≤ 2000 \le x \le 2000 ≤ x ≤ 2 0 0 0 )来求每个 F ( x ) F(x) F ( x ) 。先对ai 序列按升序排序,从前往后遍历,如果不满足 x + i ≥ a i x+i \ge a_i x + i ≥ a i 则说明 F ( x ) = 0 F(x) =0 F ( x ) = 0 ,即不存在一个有效序列,自然也不可能与p互质,直接看x+1。对于每个i,求出 a i − x a_i-x a i − x ,在 b [ a i − x ] b[a_i-x] b [ a i − x ] 上加1,若 x > a i x \gt a_i x > a i ,则在 b [ 0 ] b[0] b [ 0 ] 上加1。通过前面的思路可以发现,我们现在的bi 并不是我上一段中所说的那个bi ,要得到上一段定义的bi ,应该是求 b [ i ] b[i] b [ i ] 的累加和,然后减去多加的一部分,即i前面位置的那些数,共i个,于是第i位上能够出现的数字数目为 ∑ 0 i b [ i ] − i \sum_0^ib[i]-i ∑ 0 i b [ i ] − i 。之后从前往后遍历一遍b数组,因为p是质数,故不需要求出总数目,只需看乘数中是否出现了p的倍数,即判断 ( ∑ 0 i b [ i ] − i ) % p (\sum_0^ib[i]-i)\%p ( ∑ 0 i b [ i ] − i ) % p 是否等于0即可,每一位都与p互质的即为满足条件的,记录下来以便之后输出。
代码:
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define ll long long
#define ull unsigned long long
#define PI acos(-1.0)
#define pii pair
#define fi first
#define se second
using namespace std;
const int N=2e3+100;
const int mod=1e9+7;
int n,p,a[N],b[N];
int main()
{
int T;
T=1;
// scanf("%d",&T);
while(T--)
{
scanf("%d%d",&n,&p);
for(int i=0;i res;
for(int x=1;x<=2000;x++)
{
int flag=0;
memset(b,0,sizeof(b));
for(int i=0;i=n)
{
flag=1;
break;
}
else b[a[i]-x]++;
}
}
if(flag) continue;
for(int i=0;i0) b[i]+=b[i-1];
if((b[i]-i)%p==0)
{
flag=1;
break;
}
}
if(!flag) res.push_back(x);
}
printf("%d\n",res.size());
for(int i=0;i
E2 Asterism (Hard Version)
题意: 题意与E1相同,区别在于数据范围扩大了 ( 2 ≤ p ≤ n ≤ 1 e 5 , 1 ≤ a i ≤ 1 e 9 ) (2 \le p \le n \le 1e5,1 \le a_i \le 1e9) ( 2 ≤ p ≤ n ≤ 1 e 5 , 1 ≤ a i ≤ 1 e 9 ) 。
思路: 假设m是一个小于等于n的数,继承E1的思路可以推出, F ( x ) F(x) F ( x ) 一定是m!乘上(n-m)个小于等于m的数得到的,于是如果 F ( x ) % p = 0 F(x)\%p=0 F ( x ) % p = 0 ,那么 F ( x + 1 ) % p = 0 F(x+1)\%p=0 F ( x + 1 ) % p = 0 也一定成立(想一想,然后写几个例子就明白了)。那么就说明满足条件的 F ( x ) F(x) F ( x ) 一定是连续出现的,只要找到左右边界就可以直接输出了。左边界就是要对于任意的i满足 x + i ≥ a i x+i \ge a_i x + i ≥ a i ,则有 x ≥ a i − i x \ge a_i-i x ≥ a i − i ,即 x m i n = max ( a i − i ) x_{min}=\max(a_{i}-i) x m i n = max ( a i − i ) 。对于xmax 有从xmin 到xmax 都满足条件,从xmax +1到1e9都不满足条件,于是可以通过二分查找找出这个点,check的方法就可以参考上面E1的方法。
代码:
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define ll long long
#define ull unsigned long long
#define PI acos(-1.0)
#define pii pair
#define fi first
#define se second
using namespace std;
const int N=1e5+100;
const int mod=1e9+7;
int n,p,a[N],b[N];
int main()
{
int T;
T=1;
// scanf("%d%*c",&T);
while(T--)
{
scanf("%d%d",&n,&p);
for(int i=0;i res;
int mmin=a[0];
for(int i=1;i>1;
int flag=0;
memset(b,0,sizeof(b));
for(int i=0;i0) b[i]+=b[i-1];
if((b[i]-i)%p==0)
{
flag=1;
break;
}
}
if(flag) r=x;
else l=x+1;
}
if(mmin>=r) printf("0\n");
else
{
printf("%d\n",r-mmin);
for(int i=mmin;i
F Raging Thunder
题意: 有n个编号从1到n的传送带,每台输送机都有一个状态“<”或“>”。第i个传送带的初始状态取决给定的字符串的第i个字符。有n+1个编号从0到n的洞,第0号洞在1号传送带左边,其余所有洞i在传送带i的右边。 如果一个球在传送带i上,则它会按照如下规则移动。 如果传送带i的状态为"<": 1.如果i=1,球进入洞0; 2.如果传送带i-1状态为"<",球移动到传送带i-1; 3.如果传送带i-1状态为">",球进入洞i-1; 如果传送带i的状态为">": 1.如果i=n,球进入洞0; 2.如果传送带i+1状态为">",球移动到传送带i+1; 3.如果传送带i+1状态为"<",球进入洞i; 现在有n个询问,每个询问给出一个l,r,将区间[l,r]的传送带状态反转,然后在这些传送带上分别放一个球,问球最多的那个洞中的球的数量是多少,其中前面询问引起的传送带的反转会影响后面的询问,前面询问中的球不会累加到后面的询问中。
思路: 线段树分类讨论。这个问题的难点主要就在于区间合并和区间修改以及pushdown。 我的做法是将一段连续有关的区间看做一个块,如<<>><就可以看成<<和>><两个块。在线段树中记录最左块的长度,最右块的长度,最长中间块的长度(形如><的就叫中间块),最左块的朝向,最右块的朝向(向内走还是向外走),区间左右端点,区间是否朝向一致,区间块数量。 区间合并:
1.形如>|< 最长中间块=max(左右的中间块最大值,左区间最右块加右区间最左块) 如果左区间不全为>,则最左块=左区间最左块,否则最左块=左区间长度+右区间最左块长度 右区间同理 最左朝向=左区间最左朝向 最右朝向=右区间最右朝向 块数量=左块数量+右块数量-1 区间朝向肯定不一致,左右端点不用说了
2.形如>|> 如果右区间不全为>,则最长中间块=max(左右的中间块最大值,左区间最右块加右区间最左块),否则最长中间块=左右的中间块最大值 如果左区间不全为>,则最左块=左区间最左块,否则最左块=左区间长度+右区间最左块长度 如果右区间块数量=1,则最右块=左区间最右块+右区间长度,否则最右块=右区间最右块 最左朝向=左区间最左朝向 最右朝向=右区间最右朝向 块数量=左块数量+右块数量-1 左右区间朝向均一致则朝向一致,左右端点不用说了
3.形如<|< 与2同理
4.形如<|> 最简单的一种情况 最长中间块=左右的中间块最大值 最左块=左区间最左块 最右块=右区间最右块 最左朝向=左区间最左朝向 最右朝向=右区间最右朝向 块数量=左块数量+右块数量-1 区间朝向肯定不一致,左右端点不用说了
区间修改: 可以直接存正反两套信息,修改时就把两套信息互换即可,设一个lazy标记表示该区间是否需要反转,每次修改将指定区间的lazy异或1。
pushdown: 如果lazy标记为1则把该区间两套信息交换,再把标记向下传播,即把左右两个儿子的lazy标记异或1。
写的很麻烦,写着写着自己就晕了,肯定还有更简便的方法。
代码:
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define ll long long
#define ull unsigned long long
#define PI acos(-1.0)
#define pii pair
#define fi first
#define se second
using namespace std;
const int N=5e5+100;
const int mod=1e9+7;
int n,q;
char a[N];
struct Node
{
int l,r,lazy,all[2],cnt[2],ln[2],rn[2],mn[2],fl[2],fr[2];
}tr[4*N];
void pushup(Node &u,Node &l,Node &r)
{
for(int i=0;i<=1;i++)
{
u.mn[i]=max(l.mn[i],r.mn[i]);
u.ln[i]=l.ln[i];
u.rn[i]=r.rn[i];
u.fl[i]=l.fl[i];
u.fr[i]=r.fr[i];
u.cnt[i]=l.cnt[i]+r.cnt[i];
//cout<>1;
build(u<<1,l,mid);
build(u<<1|1,mid+1,r);
pushup(u);
}
}
void modify(int u,int l,int r)
{
if(tr[u].l>=l&&tr[u].r<=r)
{
tr[u].lazy^=1;
swap(tr[u].all[0],tr[u].all[1]);
swap(tr[u].cnt[0],tr[u].cnt[1]);
swap(tr[u].ln[0],tr[u].ln[1]);
swap(tr[u].rn[0],tr[u].rn[1]);
swap(tr[u].mn[0],tr[u].mn[1]);
swap(tr[u].fl[0],tr[u].fl[1]);
swap(tr[u].fr[0],tr[u].fr[1]);
}
else
{
pushdown(u);
int mid=tr[u].l+tr[u].r>>1;
if(l<=mid) modify(u<<1,l,r);
if(r>mid) modify(u<<1|1,l,r);
pushup(u);
}
}
Node query(int u,int l,int r)
{
if(tr[u].l>=l&&tr[u].r<=r) return tr[u];
else
{
pushdown(u);
int mid=tr[u].l+tr[u].r>>1;
if(r<=mid) return query(u<<1,l,r);
else if(l>mid) return query(u<<1|1,l,r);
else
{
Node t1=query(u<<1,l,r);
Node t2=query(u<<1|1,l,r);
Node res={t1.l,t2.r,0};
pushup(res,t1,t2);
return res;
}
}
}
int main()
{
int T;
T=1;
// scanf("%d%*c",&T);
while(T--)
{
scanf("%d%d%*c",&n,&q);
scanf("%s",a+1);
build(1,1,n);
for(int i=1;i<=q;i++)
{
int l,r;
scanf("%d%d",&l,&r);
modify(1,l,r);
// for(int i=1;i<=9;i++)
// cout<
你可能感兴趣的:(codeforces,线段树,逻辑,思维,数据结构)
三菱PLC全套学习资料及应用手册
good2know
本文还有配套的精品资源,点击获取简介:三菱PLC作为工业自动化领域的核心设备,其系列产品的学习和应用需要全面深入的知识。本次资料包为学习者提供从基础到进阶的全方位学习资源,包括各种型号PLC的操作手册、编程指南、软件操作教程以及实际案例分析,旨在帮助用户系统掌握PLC的编程语言、指令系统及在各类工业应用中的实施。1.三菱PLC基础知识入门1.1PLC的基本概念可编程逻辑控制器(PLC)是工业自动化
《极简思维》第三部分
小洋苏兮
整理你的人际关系如何改善人际关系?摘录:因为人际关系问题是人们生活中不快乐的主要原因。感想:感觉这个说的挺对,之前我总是埋头学习,不管舍友不管自己的合作伙伴的一些事情,但实际上,这学期关注了之后好多了摘录:“亲密关系与社交会让你健康而快乐。这是基础。太过于关注成就或不太关心人际关系的人都不怎么快乐。基本上来说,人类就是建立在人脉关系上的。”感想:但是如果有时想的太多就不太好,要以一个开放的心态跟别
英伟达靠什么支撑起了4万亿?AI泡沫还能撑多久?
英伟达市值突破4万亿美元,既是AI算力需求爆发的直接体现,也暗含市场对未来的狂热预期。其支撑逻辑与潜在风险并存,而AI泡沫的可持续性则取决于技术、商业与地缘政治的复杂博弈。⚙️一、英伟达4万亿市值的核心支撑因素技术垄断与生态壁垒硬件优势:英伟达GPU在AI训练市场占有率超87%,H100芯片的FP16算力达1979TFLOPS,领先竞品3-5倍。CUDA生态:400万开发者构建的软件护城河,成为A
SpringMVC的执行流程
1、什么是MVCMVC是一种设计模式。MVC的原理图如下所示M-Model模型(完成业务逻辑:有javaBean构成,service+dao+entity)V-View视图(做界面的展示jsp,html……)C-Controller控制器(接收请求—>调用模型—>根据结果派发页面2、SpringMVC是什么SpringMVC是一个MVC的开源框架,SpringMVC=Struts2+Spring,
车载诊断架构 --- 关于诊断时间参数P4的浅析
汽车电子实验室
车载电子电气架构 漫谈UDS诊断协议系列 架构 开发语言 关于网关转发性能引起的思考 汽车中央控制单元HPC软件架构 车载诊断进阶篇
关于诊断时间参数P4的浅析我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师:所谓鸡汤,要么蛊惑你认命,要么怂恿你拼命,但都是回避问题的根源,以现象替代逻辑,以情绪代替思考,把消极接受现实的懦弱,伪装成乐观面对不幸的豁达,往不幸上面喷“香水”来掩盖问题。无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事.而不是让内心的烦
【ARM】FPU,VFP,ASE,NEON,SVE...是什么意思?
亿道电子Emdoor
ARM arm开发 ARM
1、文档目标对执行浮点和SIMD操作的逻辑的各种名称的缩写词进行简要解释。2、问题场景Arm处理器内核中有用于执行浮点和SIMD操作的逻辑,有各种名称。它们通常是一系列的缩写形式,因此本文旨在对每一个缩写词进行简要解释。3、软硬件环境1、软件版本:不涉及2、电脑环境:不涉及4、相关缩写FPU(Floating-PointUnit)浮点单元浮点单元是处理器核心中的一个模块,用于使用浮点数执行算术运算
12张思维导图读懂《关键对话》
蜜蜂学堂
你一定遇到过下列情况:·向上司提出你精心设计的方案,却被泼了一头冷水。·要求下属加班,下属以沉默相对抗。·和家人谈“开源节流”,他却只当是耳边风。·要邻居遵守公德,对方却依然我行我素。·要你的另一半浪漫些,对方却还是像根木头一样。·请朋友还钱,朋友却总是找各种借口推托。当你遇到这些情况时,你是沉默以对,还是尖刻批评,抑或拍案而起?别觉得灰心丧气,因为大部分人都和你一样,在面对难以解决却又会对生活产
2023-01-26
胡喜平
我觉得《可见的学习》一书确实从底层逻辑说清楚了,教学的本质。可是太多术语和概念,一时间难以消化啊。而且知道和懂得有距离,运用就更不行了,需要高手和专家的指导。我需要多听听新课标的讲座了,来反复印证。读论文也有了一点点灵感,明天修改我的论文。
第二十二天(数据结构,无头节点的单项链表)
肉夹馍不加青椒
c语言 数据结构
线性表:一个线性表里面可以是任意的数据元素,但是同一个线性表里面数据应该是同类型的1存在一个/唯一被称为第一个节点的节点2存在一个/唯一被称为最后一个节点的节点3除了第一个以外,每一个元素都有一个前驱节点4除了最后一个,每一个元素都有一个后继节点满足以上性质,这个表就被称为线性表数组就是一个线性表想实现线性表的保存,我们需要考虑下面的事情1元素要保存2元素与元素之间的序偶关系谁是前面的谁是后面的我
uniapp微信小程序 - 详解微信小程序平台用户授权登录全流程,uniapp v3版本中小程序端开发下用户点击登录后获取手机号/昵称/性别/头像等信息完成登录(提供完整示例代码,一键复制开箱即用)
十一猫咪爱养鱼
前端组件与功能(开箱即用) uniapp常见问题解决 uniapp vue3 uniapp3小程序授权登录 微信小程序登录获取用户信息教程 获取用户昵称手机号头像信息登录 vue3版本小程序平台授权登录 uniap小程序端用户登录流程 uni完整的小程序平台登录源码
效果图在uniapp微信小程序端开发中,超详细实现用户授权登录完整功能源码,用户授权后获取手机号/昵称/头像/性别等,提供完整思路流程及逻辑讲解。uniappVue3和Vue2都能用,你也可以直接复制粘贴,然后改下参数放到你的项目中去就行。整体思路做功能之前,先来看一下整体流程是
大数据之路:阿里巴巴大数据实践——大数据领域建模综述
为什么需要数据建模核心痛点数据冗余:不同业务重复存储相同数据(如用户基础信息),导致存储成本激增。计算资源浪费:未经聚合的明细数据直接参与计算(如全表扫描),消耗大量CPU/内存资源。数据一致性缺失:同一指标在不同业务线的口径差异(如“活跃用户”定义不同),引发决策冲突。开发效率低下:每次分析需重新编写复杂逻辑,无法复用已有模型。数据建模核心价值性能提升:分层设计(ODS→DWD→DWS→ADS)
Unity学习笔记1
zy_777
通过一个星期的简单学习,初步了解了下unity,unity的使用,以及场景的布局,UI,以及用C#做一些简单的逻辑。好记性不如烂笔头,一些关键帧还是记起来比较好,哈哈,不然可能转瞬即逝了,(PS:纯小白观点,unity大神可以直接忽略了)一:MonoBehaviour类的初始化1,Instantiate()创建GameObject2,通过Awake()和Start()来做初始化3,Update、L
用 Python 开发小游戏:零基础也能做出《贪吃蛇》
本文专为零基础学习者打造,详细介绍如何用Python开发经典小游戏《贪吃蛇》。无需复杂编程知识,从环境搭建到代码编写、功能实现,逐步讲解核心逻辑与操作。涵盖Pygame库的基础运用、游戏界面设计、蛇的移动与食物生成规则等,让新手能按步骤完成开发,同时融入SEO优化要点,帮助读者轻松入门Python游戏开发,体验从0到1做出游戏的乐趣。一、为什么选择用Python开发《贪吃蛇》对于零基础学习者来说,
文科生转行编程:从月薪 3 千到 2 万的真实经历
在当下就业市场中,文科生往往面临诸多挑战,薪资水平也不尽如人意。然而,有不少勇敢的文科生成功实现了向编程领域的转行,薪资更是实现了从月薪3千到2万的飞跃。本文将深入剖析文科生转行编程的真实经历,从最初对现状的不满萌生出转行念头,到如何艰难地开启学习之旅,克服基础薄弱、思维转换难等重重困难,再到求职时凭借策略与努力获得宝贵机会,以及入职后持续学习保持竞争力。希望通过这些真实历程,为有志于转行编程的文
GPT-4 在 AIGC 中的微调技巧:让模型更懂你的需求
AIGC应用创新大全
AI人工智能与大数据应用开发 MCP&Agent 云算力网络 AIGC ai
GPT-4在AIGC中的微调技巧:让模型更懂你的需求关键词:GPT-4、AIGC、模型微调、监督学习、指令优化、过拟合预防、个性化生成摘要:AIGC(人工智能生成内容)正在重塑内容创作行业,但通用的GPT-4模型可能无法精准匹配你的垂直需求——比如写电商爆款文案时总“跑题”,或生成技术文档时专业术语不够。本文将用“教小朋友学画画”的通俗类比,从微调的底层逻辑讲到实战技巧,带你掌握让GPT-4“更懂
Spark SQL架构及高级用法
Aurora_NeAr
spark sql 架构
SparkSQL架构概述架构核心组件API层(用户接口)输入方式:SQL查询;DataFrame/DatasetAPI。统一性:所有接口最终转换为逻辑计划树(LogicalPlan),进入优化流程。编译器层(Catalyst优化器)核心引擎:基于规则的优化器(Rule-BasedOptimizer,RBO)与成本优化器(Cost-BasedOptimizer,CBO)。处理流程:阶段输入输出关键动
好可怕୧( ⁼̴̶̤̀ω⁼̴̶̤́ )૭人会因为思维狭隘而限制自己的选择范围,并且导致做出糟糕选择
寻世良方Cc_Sandy拎0
人间天堂举个例子,希思兄弟指出,青少年们的决定中,有65%左右都属于表决心式和“是否式”决定。表决心式决定是类似于“我再也不吃垃圾食品”这种;“是否式”决定指的是像“我要不要吃炸鸡”,或者“我要不要跟男朋友分手”这种决定。作者说,这其实是一种“认知气泡”。在“认知气泡”里面,人们看不到更多的选择,相当于思维被局限住。而且,这种现象不仅仅是青少年中会出现,成熟的组织也会犯同样的错误。比如,公司在收购
2018年中南大学中英翻译
某翁
参考:20180827235856533.jpg【1】机器学习理论表明,机器学习算法能从有限个训练集样本上得到较好的泛化【1】Machinelearningtheoryshowsthatmachinelearningalgorithmcangeneralizewellfromfinitetrainingsetsampleslimited有限的infinite无限的【2】这似乎违背了一些基本的逻辑准
《终身成长》之每日领读
恩佳一
【昵称】锡安之燕【书名】《终身成长》【阅读时长】30分钟【阅读内容】第四章《天赋与天才》【原文金句】1.人的思维模式比天赋更重要。2.在我们的文化中,无论怎么强调个人努力和自我提高的重要性,人们在心灵深处,依然崇尚天赋。【三个问题】:1、结合之前学过的知识,说一说固定型思维模式的人,在面对失败的时候会怎样做?固定型思维模式的人面对失败会自卑,不自信,会停滞不前或就此被打倒。2、身体上的天赋是显而易
数据可视化:艺术与科学的交汇点,如何让数据“开口说话”?
Echo_Wish
大数据 信息可视化 数据分析 数据挖掘
数据可视化:艺术与科学的交汇点,如何让数据“开口说话”?数据可视化,是科技与艺术的结合,是让冰冷的数字变得生动有趣的桥梁。它既是科学——讲究准确性、逻辑性、数据处理的严谨性;又是艺术——强调美感、信息传递的直觉性,以及与观众的共鸣。可以说,好的数据可视化不仅能让人快速理解复杂信息,还能激发思考、引发行动。科学——数据可视化的理性基石首先,数据可视化必须遵循严谨的数据处理和清晰的信息传递原则。这就要
5.2 20190503
MaggieFeng1988
姓名:冯进平公司:上海晋名实业有限公司【日精进打卡第403天】六项精进221期努力一组学员六项精进410期乐观三组志工六项精进423期反省三组志工六项精进469期努力二组志工【知~学习】诵读《六项精进》大纲0遍,共513遍;诵读《六项精进》通篇0遍,共33遍;背诵《大学》0遍,共492遍;阅读《活法》贰第053–063也;荔枝阅读《思维方式》020-036《敬天爱人》手抄第十二天【经典名句】1.放
思维导图中的3A
画画的小常
图片发自App在学习思维导图3A之前,我们先来看看东方古国传统教书过程。分三步:听话,合作,变化。听话,学生摹仿老师,在这个过程中除非必需问题需要老师澄清解释,其他所有的都要求先行记忆。合作,这一阶段大多已经掌握基本知识点,允许学生提出问题,老师引导学生采用合适的方法,让学生亲自动手,解决问题。变化,经历了前面2个阶段,知识已经彻底掌握,此阶段要充分发挥洞察力和生发出新的思想以回馈老师。较之传统教
初探数学思维(一):数学概括
JackyFuu
数学培养规则意识;培养周密思维和创新能力“现代电子计算机之父”冯·诺依曼对微积分的评价:微积分是现代数学的第一个成就,而且怎样评价它的重要性都不为过。我认为,微积分比其他任何事物都更清楚地表明了现代数学的发端;而且,作为其逻辑发展的数学分析体系仍然构成了精密思维中最伟大的技术进展。《GEB-一条永恒的金带》,普利策奖,1979,美国,指出有一条永恒的金带把数理逻辑、绘画、音乐等不同领域之间的共同规
大学生入门:分支结构及其易踩坑的点
山中月侣
java大学生入门 java 开发语言 经验分享
循环和分支在我们的日常代码中出现频率很高,无论是简单的数据处理还是复杂的业务逻辑,都会经常用到,它们看似简单,但是使用起来还是有很多隐藏的问题的,接下来我们一起学习或者复习一下:一、分支结构1、if语句主要包括三种:if语句、if-else语句、if-elseif-else语句if语句:if(条件表达式){//条件为真时执行的代码块}如果要执行的语句只有一句,可以省略“{}”,但是不建议if-el
《应对焦虑》做好4点帮你轻松化解焦虑,并从焦虑中走出来
程杰读书
你焦虑过吗?有被焦虑困扰过吗?那么什么是焦虑呢?焦虑就是对亲人或自己生命安全,前途命运等的过度担心,而产生的一种烦躁情绪。我曾经有一段时间也特别焦虑。那是在一年前由于孩子的数学成绩很差,思维跟不上。我经常辅导她,就是不开窍。把我气的心脏快炸了。怎么办呢?眼看就要上小学高年级了。心里那个着急啊,真的是无处可说。于是就在网校上报了名,让专业老师来辅导。可她对待作业都是马马虎虎,一点都不认真。眼看一学期
顺时针旋转N * N 的矩阵
忆杰
算法 Python 矩阵 python 算法
顺时针旋转题目描述数据范围实现逻辑代码实现题目描述有一个NxN整数矩阵,请编写一个算法,将矩阵顺时针旋转90度。给定一个NxN的矩阵,和矩阵的阶数N,请返回旋转后的NxN矩阵。数据范围0852789963'''#第N列逆序后变成第N行#或者是第i行变成第N-i-1列代码实现classSolution:#列转换为行defline2Row(self,mat,n):arr=[]forlineinrang
08.学习闭环三部曲:预习、实时学习、复习
0058b195f4dc
人生就是一本效率手册,你怎样对待时间,时间就会给你同比例的回馈。单点突破法。预习,实时学习,复习。1、预习:凡事提前【计划】(1)前一晚设置三个当日目标。每周起始于每周日。(2)提前学习。预习法进行思考。预不预习效果相差20%,预习法学会提问。(3)《学会提问》。听电子书。2.实时学习(1)(10%)相应场景,思维导图,快速笔记。灵感笔记。(2)大纲,基本记录,总结篇。3.复习法则,(70%),最
深入剖析 boost::unique_lock<boost::mutex>
程序员乐逍遥
C++ Boost库 C/C++多线程编程专题 C++ boost 线程 锁
在高并发的C++程序中,线程安全是永恒的主题。而boost::unique_lock作为Boost.Thread库中的核心组件,为开发者提供了强大、灵活且异常安全的互斥量管理机制。它不仅是RAII(ResourceAcquisitionIsInitialization)设计模式的典范,更是实现复杂线程同步逻辑的基石。一、从lock_guard的说起在介绍unique_lock之前,我们先回顾其“简
领略商业之美
苏黛_love
从明天起,我要做一个会育儿、懂商业的妈妈。学习商业大课之《认知商业》《觉性智慧》的收获:1、商业是帮助我们赚钱的必备技能,从此不再排斥商业,对财富说是。2、老王说,普通人的商业思维就是:你能用已经验证的商业规则来帮助自己赚钱。我的理解:有模板,永就好了。3、有的人喜欢钱,不喜欢赚钱··········哈哈哈——现在,我认为这是对没有挣钱的能力和怕辛苦的掩饰罢了。4、商业大课上要转变的一个思维:挣钱
如何运用深度学习打造高效AI人工智能系统
AI智能探索者
AI Agent 智能体开发实战 人工智能 深度学习 ai
如何运用深度学习打造高效AI人工智能系统关键词:深度学习、AI系统、神经网络、模型优化、实战开发摘要:本文将从深度学习的核心概念出发,结合生活实例和代码实战,系统讲解如何构建高效AI系统。我们会拆解数据准备、模型设计、训练优化、部署落地的全流程,揭秘“数据-模型-训练-推理”的协同机制,并通过具体案例演示从0到1开发AI系统的关键技巧,帮助开发者掌握打造高效AI系统的底层逻辑。背景介绍目的和范围在
java线程Thread和Runnable区别和联系
zx_code
java jvm thread 多线程 Runnable
我们都晓得java实现线程2种方式,一个是继承Thread,另一个是实现Runnable。
模拟窗口买票,第一例子继承thread,代码如下
package thread;
public class ThreadTest {
public static void main(String[] args) {
Thread1 t1 = new Thread1(
【转】JSON与XML的区别比较
丁_新
json xml
1.定义介绍
(1).XML定义
扩展标记语言 (Extensible Markup Language, XML) ,用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。 XML使用DTD(document type definition)文档类型定义来组织数据;格式统一,跨平台和语言,早已成为业界公认的标准。
XML是标
c++ 实现五种基础的排序算法
CrazyMizzz
C++ c 算法
#include<iostream>
using namespace std;
//辅助函数,交换两数之值
template<class T>
void mySwap(T &x, T &y){
T temp = x;
x = y;
y = temp;
}
const int size = 10;
//一、用直接插入排
我的软件
麦田的设计者
我的软件 音乐类 娱乐 放松
这是我写的一款app软件,耗时三个月,是一个根据央视节目开门大吉改变的,提供音调,猜歌曲名。1、手机拥有者在android手机市场下载本APP,同意权限,安装到手机上。2、游客初次进入时会有引导页面提醒用户注册。(同时软件自动播放背景音乐)。3、用户登录到主页后,会有五个模块。a、点击不胫而走,用户得到开门大吉首页部分新闻,点击进入有新闻详情。b、
linux awk命令详解
被触发
linux awk
awk是行处理器: 相比较屏幕处理的优点,在处理庞大文件时不会出现内存溢出或是处理缓慢的问题,通常用来格式化文本信息
awk处理过程: 依次对每一行进行处理,然后输出
awk命令形式:
awk [-F|-f|-v] ‘BEGIN{} //{command1; command2} END{}’ file
[-F|-f|-v]大参数,-F指定分隔符,-f调用脚本,-v定义变量 var=val
各种语言比较
_wy_
编程语言
Java Ruby PHP 擅长领域
oracle 中数据类型为clob的编辑
知了ing
oracle clob
public void updateKpiStatus(String kpiStatus,String taskId){
Connection dbc=null;
Statement stmt=null;
PreparedStatement ps=null;
try {
dbc = new DBConn().getNewConnection();
//stmt = db
分布式服务框架 Zookeeper -- 管理分布式环境中的数据
矮蛋蛋
zookeeper
原文地址:
http://www.ibm.com/developerworks/cn/opensource/os-cn-zookeeper/
安装和配置详解
本文介绍的 Zookeeper 是以 3.2.2 这个稳定版本为基础,最新的版本可以通过官网 http://hadoop.apache.org/zookeeper/来获取,Zookeeper 的安装非常简单,下面将从单机模式和集群模式两
tomcat数据源
alafqq
tomcat
数据库
JNDI(Java Naming and Directory Interface,Java命名和目录接口)是一组在Java应用中访问命名和目录服务的API。
没有使用JNDI时我用要这样连接数据库:
03. Class.forName("com.mysql.jdbc.Driver");
04. conn
遍历的方法
百合不是茶
遍历
遍历
在java的泛
linux查看硬件信息的命令
bijian1013
linux
linux查看硬件信息的命令
一.查看CPU:
cat /proc/cpuinfo
二.查看内存:
free
三.查看硬盘:
df
linux下查看硬件信息
1、lspci 列出所有PCI 设备;
lspci - list all PCI devices:列出机器中的PCI设备(声卡、显卡、Modem、网卡、USB、主板集成设备也能
java常见的ClassNotFoundException
bijian1013
java
1.java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory 添加包common-logging.jar2.java.lang.ClassNotFoundException: javax.transaction.Synchronization
【Gson五】日期对象的序列化和反序列化
bit1129
反序列化
对日期类型的数据进行序列化和反序列化时,需要考虑如下问题:
1. 序列化时,Date对象序列化的字符串日期格式如何
2. 反序列化时,把日期字符串序列化为Date对象,也需要考虑日期格式问题
3. Date A -> str -> Date B,A和B对象是否equals
默认序列化和反序列化
import com
【Spark八十六】Spark Streaming之DStream vs. InputDStream
bit1129
Stream
1. DStream的类说明文档:
/**
* A Discretized Stream (DStream), the basic abstraction in Spark Streaming, is a continuous
* sequence of RDDs (of the same type) representing a continuous st
通过nginx获取header信息
ronin47
nginx header
1. 提取整个的Cookies内容到一个变量,然后可以在需要时引用,比如记录到日志里面,
if ( $http_cookie ~* "(.*)$") {
set $all_cookie $1;
}
变量$all_cookie就获得了cookie的值,可以用于运算了
java-65.输入数字n,按顺序输出从1最大的n位10进制数。比如输入3,则输出1、2、3一直到最大的3位数即999
bylijinnan
java
参考了网上的http://blog.csdn.net/peasking_dd/article/details/6342984
写了个java版的:
public class Print_1_To_NDigit {
/**
* Q65.输入数字n,按顺序输出从1最大的n位10进制数。比如输入3,则输出1、2、3一直到最大的3位数即999
* 1.使用字符串
Netty源码学习-ReplayingDecoder
bylijinnan
java netty
ReplayingDecoder是FrameDecoder的子类,不熟悉FrameDecoder的,可以先看看
http://bylijinnan.iteye.com/blog/1982618
API说,ReplayingDecoder简化了操作,比如:
FrameDecoder在decode时,需要判断数据是否接收完全:
public class IntegerH
js特殊字符过滤
cngolon
js特殊字符 js特殊字符过滤
1.js中用正则表达式 过滤特殊字符, 校验所有输入域是否含有特殊符号function stripscript(s) { var pattern = new RegExp("[`~!@#$^&*()=|{}':;',\\[\\].<>/?~!@#¥……&*()——|{}【】‘;:”“'。,、?]"
hibernate使用sql查询
ctrain
Hibernate
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import org.hibernate.Hibernate;
import org.hibernate.SQLQuery;
import org.hibernate.Session;
import org.hibernate.Transa
linux shell脚本中切换用户执行命令方法
daizj
linux shell 命令 切换用户
经常在写shell脚本时,会碰到要以另外一个用户来执行相关命令,其方法简单记下:
1、执行单个命令:su - user -c "command"
如:下面命令是以test用户在/data目录下创建test123目录
[root@slave19 /data]# su - test -c "mkdir /data/test123" 
好的代码里只要一个 return 语句
dcj3sjt126com
return
别再这样写了:public boolean foo() { if (true) { return true; } else { return false;
Android动画效果学习
dcj3sjt126com
android
1、透明动画效果
方法一:代码实现
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
View rootView = inflater.inflate(R.layout.fragment_main, container, fals
linux复习笔记之bash shell (4)管道命令
eksliang
linux管道命令汇总 linux管道命令 linux常用管道命令
转载请出自出处:
http://eksliang.iteye.com/blog/2105461
bash命令执行的完毕以后,通常这个命令都会有返回结果,怎么对这个返回的结果做一些操作呢?那就得用管道命令‘|’。
上面那段话,简单说了下管道命令的作用,那什么事管道命令呢?
答:非常的经典的一句话,记住了,何为管
Android系统中自定义按键的短按、双击、长按事件
gqdy365
android
在项目中碰到这样的问题:
由于系统中的按键在底层做了重新定义或者新增了按键,此时需要在APP层对按键事件(keyevent)做分解处理,模拟Android系统做法,把keyevent分解成:
1、单击事件:就是普通key的单击;
2、双击事件:500ms内同一按键单击两次;
3、长按事件:同一按键长按超过1000ms(系统中长按事件为500ms);
4、组合按键:两个以上按键同时按住;
asp.net获取站点根目录下子目录的名称
hvt
.net C# asp.net hovertree Web Forms
使用Visual Studio建立一个.aspx文件(Web Forms),例如hovertree.aspx,在页面上加入一个ListBox代码如下:
<asp:ListBox runat="server" ID="lbKeleyiFolder" />
那么在页面上显示根目录子文件夹的代码如下:
string[] m_sub
Eclipse程序员要掌握的常用快捷键
justjavac
java eclipse 快捷键 ide
判断一个人的编程水平,就看他用键盘多,还是鼠标多。用键盘一是为了输入代码(当然了,也包括注释),再有就是熟练使用快捷键。 曾有人在豆瓣评
《卓有成效的程序员》:“人有多大懒,才有多大闲”。之前我整理了一个
程序员图书列表,目的也就是通过读书,让程序员变懒。 写道 程序员作为特殊的群体,有的人可以这么懒,懒到事情都交给机器去做,而有的人又可
c++编程随记
lx.asymmetric
C++ 笔记
为了字体更好看,改变了格式……
&&运算符:
#include<iostream>
using namespace std;
int main(){
int a=-1,b=4,k;
k=(++a<0)&&!(b--
linux标准IO缓冲机制研究
音频数据
linux
一、什么是缓存I/O(Buffered I/O)缓存I/O又被称作标准I/O,大多数文件系统默认I/O操作都是缓存I/O。在Linux的缓存I/O机制中,操作系统会将I/O的数据缓存在文件系统的页缓存(page cache)中,也就是说,数据会先被拷贝到操作系统内核的缓冲区中,然后才会从操作系统内核的缓冲区拷贝到应用程序的地址空间。1.缓存I/O有以下优点:A.缓存I/O使用了操作系统内核缓冲区,
随想 生活
暗黑小菠萝
生活
其实账户之前就申请了,但是决定要自己更新一些东西看也是最近。从毕业到现在已经一年了。没有进步是假的,但是有多大的进步可能只有我自己知道。
毕业的时候班里12个女生,真正最后做到软件开发的只要两个包括我,PS:我不是说测试不好。当时因为考研完全放弃找工作,考研失败,我想这只是我的借口。那个时候才想到为什么大学的时候不能好好的学习技术,增强自己的实战能力,以至于后来找工作比较费劲。我
我认为POJO是一个错误的概念
windshome
java POJO 编程 J2EE 设计
这篇内容其实没有经过太多的深思熟虑,只是个人一时的感觉。从个人风格上来讲,我倾向简单质朴的设计开发理念;从方法论上,我更加倾向自顶向下的设计;从做事情的目标上来看,我追求质量优先,更愿意使用较为保守和稳妥的理念和方法。
&