均分纸牌(Noip2002)

1320:【例6.2】均分纸牌(Noip2002) 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 3537 通过数: 1839 【题目描述】 有n堆纸牌,编号分别为 1,2,…, n。每堆上有若干张,但纸牌总数必为n的倍数。可以在任一堆上取若干张纸牌,然后移动。 移牌规则为:在编号为1的堆上取的纸牌,只能移到编号为 2 的堆上;在编号为 n 的堆上取的纸牌,只能移到编号为n-1的堆上;其他堆上取的纸牌,可以移到相邻左边或右边的堆上。 现在要求找出一种移动方法,用最少的移动
分类: 其他 发布时间: 02-08 20:14 阅读次数: 0

[模板]黑白染色

如题:模板保存。 #include<cstdio> #include<cstring> #include<algorithm> #include<cstdlib> #include<iostream> #include<cmath> using namespace std; typedef long long ll; const int maxn=1e5+5; const int maxm=1e5+5; int c[maxn]; //color,每个点的黑白
分类: 其他 发布时间: 02-08 20:14 阅读次数: 0

Frosh Week HDU3743(逆序数)

离散化加 求逆序数: 求逆序数的方法 一个是归并排序 一个是树状数组 #include<bits/stdc++.h> using namespace std; int n; struct node { int v; int id; }s[1000001]; int c[1000001]; bool cmp(node a,node b) { return a.v<b.v; } int lowbit(int i) { return i&-i; } int updat
分类: 其他 发布时间: 02-08 20:14 阅读次数: 0

剑指offer算法总结

剑指offer算法学习总结 节选剑指offer比较经典和巧妙的一些题目,以便复习使用。一部分题目给出了完整代码,一部分题目比较简单直接给出思路。但是不保证我说的思路都是正确的,个人对算法也不是特别在行,只不过这本书的算法多看了几遍多做了几遍多了点心得体会。于是想总结一下。如果有错误也希望能指出,谢谢。 具体代码可以参考我的GitHub仓库: https://github.com/h2pl/SwordToOffer 数论和数字规律 从1到n整数中1出现的次数 题目描述 求出1~13的整数中1出现
分类: 其他 发布时间: 02-08 20:14 阅读次数: 0

CF140E New Year Garland

题目描述 题解: 容斥(?)+$dp$。 定义状态$dp[i][j]$表示前$i$层,其中第$i$层用了$j$种颜色。 这个时候我们发现还缺一个系数,就是用$i$种颜色涂$j$个格子的方案数(颜色无顺序要求)。 定义这个东西叫$f[i][j]$。 然后有:$$dp[i][j]=f[l[i]][j]*(C^{m}_{j}*\sum dp[i-1][k]-dp[i-1][j])$$ 结果发现这个东西涉及到组合数取模非质数。 当场自闭。 后来看题解,发现这个东西有个巧妙的处理方法。 把$f$的定义改
分类: 其他 发布时间: 02-08 20:14 阅读次数: 0

18.一篇文章,从源码深入详解ThreadLocal内存泄漏问题

1. 造成内存泄漏的原因? threadLocal是为了解决对象不能被多线程共享访问的问题,通过threadLocal.set方法将对象实例保存在每个线程自己所拥有的threadLocalMap中,这样每个线程使用自己的对象实例,彼此不会影响达到隔离的作用,从而就解决了对象在被共享访问带来线程安全问题。如果将同步机制和threadLocal做一个横向比较的话,同步机制就是通过控制线程访问共享对象的顺序,而threadLocal就是为每一个线程分配一个该对象,各用各的互不影响。打个比方说,现在有
分类: 其他 发布时间: 02-08 20:14 阅读次数: 0

17.并发容器之ThreadLocal

1. ThreadLocal的简介 在多线程编程中通常解决线程安全的问题我们会利用synchronzed或者lock控制线程对临界区资源的同步顺序从而解决线程安全的问题,但是这种加锁的方式会让未获取到锁的线程进行阻塞等待,很显然这种方式的时间效率并不是很好。线程安全问题的核心在于多个线程会对同一个临界区共享资源进行操作,那么,如果每个线程都使用自己的“共享资源”,各自使用各自的,又互相不影响到彼此即让多个线程间达到隔离的状态,这样就不会出现线程安全的问题。事实上,这就是一种“空间换时间”的方案
分类: 其他 发布时间: 02-08 20:14 阅读次数: 0

我喜欢的事=我要做的事

兴趣:我享受孤独,喜欢新鲜事,而且思想上越来越解放,越来越放飞自我;所以我要做想做的事,玩儿我想玩儿的运动,去我想去的地方,尝遍各地美食,尽情绽放自我;毕竟我不想60岁以后再去寻找我想要的自由。 时代在不断变革,新一代年轻人的思维方式已经发生了很大的变化,"艰苦奋斗,玉汝于成"的旧思维对我们年轻人来说其实是枷锁,我们更喜欢"follow our heart" 职业:小的时候会想着做宇航员、生物学家、国家领导人、地区领导人。。进入大学,自己变得越来越现实,想了很长时间,我还是想做教育,或许有关于
分类: 其他 发布时间: 02-08 20:14 阅读次数: 0

19.并发容器之BlockingQueue

1. BlockingQueue简介 在实际编程中,会经常使用到JDK中Collection集合框架中的各种容器类如实现List,Map,Queue接口的容器类,但是这些容器类基本上不是线程安全的,除了使用Collections可以将其转换为线程安全的容器,Doug Lea大师为我们都准备了对应的线程安全的容器,如实现List接口的CopyOnWriteArrayList(关于CopyOnWriteArrayList可以看这篇文章),实现Map接口的ConcurrentHashMap(关于Co
分类: 其他 发布时间: 02-08 20:14 阅读次数: 0

21.线程池ThreadPoolExecutor实现原理

1. 为什么要使用线程池 在实际使用中,线程是很占用系统资源的,如果对线程管理不善很容易导致系统问题。因此,在大多数并发框架中都会使用线程池来管理线程,使用线程池管理线程主要有如下好处: 降低资源消耗。通过复用已存在的线程和降低线程关闭的次数来尽可能降低系统性能损耗; 提升系统响应速度。通过复用线程,省去创建线程的过程,因此整体上提升了系统的响应速度; 提高线程的可管理性。线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,因此,需要使用线程池来管理线程。 2. 线程池
分类: 其他 发布时间: 02-08 20:14 阅读次数: 0

设计模式(一)——设计原则

  在一定环境下,用固定模式解决问题。   设计模式目前种类:GoF的23种 + “简单工厂模式” = 24种   包括:   创建型(Creational)模式:如何创建对象,6种   结构性(Structual)模式:如何实现类或对象的组合,7种   行为型(Behavioral)模式:类或对象怎样交互以及怎样分配职责,11种 学习设计模式有利于更深理解面向对象思想,让你知道:   1.如何将代码分散在几个不同的类中?   2.为什么要有“接口”   3.何胃针对抽象编程   4.何时不应
分类: 其他 发布时间: 02-08 20:14 阅读次数: 0

20.并发容器之ArrayBlockingQueue和LinkedBlockingQueue实现原理详解

1. ArrayBlockingQueue简介 在多线程编程过程中,为了业务解耦和架构设计,经常会使用并发容器用于存储多线程间的共享数据,这样不仅可以保证线程安全,还可以简化各个线程操作。例如在“生产者-消费者”问题中,会使用阻塞队列(BlockingQueue)作为数据容器,关于BlockingQueue可以看这篇文章。为了加深对阻塞队列的理解,唯一的方式是对其实验原理进行理解,这篇文章就主要来看看ArrayBlockingQueue和LinkedBlockingQueue的实现原理。 2.
分类: 其他 发布时间: 02-08 20:14 阅读次数: 0

Python爬虫框架开发环境简介和Scrapy安装

一、开发环境Centos6.0Scrapy1.5Python3.6Mongodb3.6Pycharm二、Scrapy1.5安装pipinstallscrapy如果Python3.6时通过编译安装的,先进行如下设置,设置环境变量,设置别名。![](https://s1.51cto.com/images/blog/201902/08/46f23f6aed868c0c87133a58a6868430.p
分类: 编程语言 发布时间: 02-08 20:10 阅读次数: 0

a标签的新发现

今天在写jsp代码的时候,处理一个jsp页面中的a标签,需要把数据传到servlet层去处理,百度了半天各种办法,看起来还复杂,结果我直接在a标签中的href属性中写入servlet层的类名,运行程序时,点击这个标签竟然能跳转到servlet层的那个类下
分类: 其他 发布时间: 02-08 20:00 阅读次数: 0

(一)SpringBoot 初学者之 HelloWorld

1.准备工具 jdk1.8,Apache-maven3.5.2(都需要配置环境变量,可百度),Intellij IDEA 2.目录结构 3.编码部分 pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLo
分类: 其他 发布时间: 02-08 20:00 阅读次数: 0

(二)SpringBoot初学者之参数绑定

1.新建 web 工程 2.文件目录 3.创建Person类,新建applapplication.yml Person类: package com.atguigu.springboot01helloworld.bean; import java.util.Date; import java.util.List; import java.util.Map; public class Person { private String name; private Integer
分类: 其他 发布时间: 02-08 20:00 阅读次数: 0

java基础,框架,多线程,实战项目,架构师,SpringBoot微信点餐,SpringCloud视频,PPT模板

第01项目:OA办公自动化项目(四套) 第02项目:CRM客户关系管理项目(两套) 第03项目:宅急送项目 第04项目:杰信商贸SSH版 第05项目:电力项目(两套) 第06项目:校内网项目 第07项目:Java邮件开发教程 第08项目:java网上在线支付实战视频 第09项目:俄罗斯方块游戏开发_视频教程 第10项目:交通灯管理系统视频教程 第11项目:银行业务调度系统视频教程 第12项目:供应链系统视频教程 第13项目:网上商城项目 第14项目:药品集中采购系统视频教程 第15项目:杰信商
分类: 其他 发布时间: 02-08 20:00 阅读次数: 0

Centos7 jdk8,Tomcat9的安装与配置

声明:本文章默认未装过jdk,Tomcat以及环境变量的配置 Tomcat支持jdk版本图(注意不要混淆着其他版本使用) 一.安装JDK 1.下载jdk8安装包 wget --no-check-certificate --no-cookies --header "Cookie:oraclelicense=accept-securebackup-cookie" 避免用户验证 wget --no-check-certificate --no-cookies --header "Cookie: or
分类: 其他 发布时间: 02-08 20:00 阅读次数: 0

Centos7安装mysql8.x

声明:系统未装过mysql8,装过其他版本就先卸载 步骤 1.查询是否安装过mysql find / -name mysql 2.下载mysql8安装包 wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm 3.
分类: 其他 发布时间: 02-08 20:00 阅读次数: 0

Centos7安装Maven3.6

步骤 1.Maven与JDK版本对照 地址:http://maven.apache.org/docs/history.html 2.下载maven包到 /usr/local/src/ wget http://mirrors.hust.edu.cn/apache/maven/maven-3/3.6.0/binaries/apache-maven-3.6.0-bin.tar.gz 3.解压安装包 tar -zvxf apache-maven-3.6.0-bin.tar.gz 4.移动解压的mave
分类: 其他 发布时间: 02-08 20:00 阅读次数: 0