- 博客(30)
- 收藏
- 关注
原创 BFS练习
BFS练习概述POJ1324概述POJ1324该题在BFS的基础上加入了状态压缩;由于蛇不能碰到自己的身体,因此每一步状态需要记录身体的位置;如果直接使用int记录身体每一段坐标(x, y),内存消耗将非常大;考虑这么一种压缩:移动过程中蛇身体的每一段的下一步位置是其前一段的当前位置,因此可以从蛇头位置往后回推蛇身的位置;另外,BFS的过程中是一定会记录移动方向的,记录身体的每一段的移动方向,由当前某一段身体位置往其反方向移动就可得到移动前其后一段的位置,因此可考虑记录身体每一段的下一步移动方
2021-12-21 10:32:25
279
原创 线段树练习
线段树练习POJ2828POJ2828由于前面来的人会有被插队的可能,因此从前往后处理排队的人会使得已经在数组中的人位置不断变化,增加计算量;可考虑从后往前处理:此时这人只要一入数组,就不可能会被插队,也就是说位置不会再变;使用权值线段树解决:定义que为最后的队列,blank为该节点剩余空位;考虑这么一种情况:最后一个人插到位置1,此时剩下位置2、3、4,倒数第二人想要插入到位置2,但其实这个位置是相对于早于他之前来的人而非相对于这最后一人,而节点2维护的位置区间只剩下一个位置留给前面的
2021-12-14 22:50:31
209
原创 MySQL
MySql安装安装到MySQL官网下载对应系统的MySQL文件,这里选择MySQL Community Server里的免安装版本向环境变量中添加路径后以管理员身份打开powershell,并在命令行输入mysqld --initialize --console来初始化MySQL,并记下初始登入密码(下图红线所示)然后输入命令安装MySQLmysqld -install然后开启MySQL服务net start mysqlnet stop mysql(停止MySQL服务)然
2021-10-06 22:21:55
137
原创 Git配置
Windows配置记录Github添加代理Github添加代理配置.gitconfig文件,文件路径为:C:\Users\(用户名)\.gitconfig往其中写入[http]proxy = (代理ip加端口,如127.0.0.1:1089)打开powershell使用命令行查看是否修改成功git config --get http.proxy...
2021-09-12 20:58:49
154
原创 Win10多用户远程桌面
Win10多用户远程桌面坎坷经历多用户+多桌面因此第一步要在主机上新建用户:第二步开启权限第三步是主机远程连接配置第四步配置RDP查看RDP是否配置成功并测试后续
2020-10-29 20:57:37
2464
原创 构建Pytorch虚拟环境
构建Pytorch虚拟环境查看显卡状态(Linux、Windows)创建虚拟环境Linux安装Anaconda开始配置安装pytorch方法一方法二方法三遇到的问题安装tensorflow-gpu(清华镜像源)Conda配置修改
2020-07-30 11:28:50
4639
1
原创 欧拉回路
HDU1878---欧拉回路#include <bits/stdc++.h>#define For(i,x,y) for(int i=(x);i<=(y);++i)#define Fov(i,x,y) for(int i=(x);i>=(y);--i)#define Fo(i,x,y) for(int i=(x);i<(y);++i)#define m...
2019-05-04 21:50:51
203
原创 51Nod1383---整数分解为2的幂
51Nod1383---整数分解为2的幂容易想到对于某一个数i,它的组合可以看成是i-1的每一种组合加上一个1,但这个1可能会与其他1合并,从而产生新的组合;当i为奇数时,发现其中有一个1一直没有被合并;对于i-1的每一个组合插入一个1,如果发生合并只会占了原本需要合并、产生新组合的1的位置,因此最后不会产生新组合;但是当i为偶数时,因为i-1的每一种组合最后必定剩下一个从来没有被合并...
2019-04-30 17:10:46
239
原创 LeetCode 1022. 可被 K 整除的最小整数
LeetCode 1022. 可被 K 整除的最小整数k对n求和,n可以分解为可以被k整除的部分x和余数m;从小到大枚举数n(10*n'+1=10*(x+m)+1),因为x*10必定可以被k整除,问题就可以转化为枚举m(10*m'+1)是否可以被k整除class Solution {public: int smallestRepunitDivByK(int K) { ...
2019-03-24 11:36:40
478
原创 状压DP
1. 物品数量很少2. 需判断状态合理性POJ2923---Relocation题目要求清掉所有物品,且物品数量很少,想到状压dp;首先要找到所有一次搬运的合理状态v[i];对于每一种状态S,它的总重量为sum,一辆车的装载问题可以看成01背包问题;然后可以扫描c1以内的任意重量x,如果x是能够达到的重量且sum-x<=c2即两辆车能够装下,此时S即为合理状态;最后就是...
2019-03-02 21:52:51
252
原创 01背包问题
1.每种物品只有一个,背包有特定容量2.每扫描一种物品,更新一次背包状态3.逆序递推,保证当前要更新的状态是由上一次更新的状态得到ACM-ICPC 2018 焦作赛区网络预赛K---Transport Ship背包容量为S,x条第i种船看做一种物品;任意条数x,可以分解为x=2^0+2^1+...+2^k,因而不必扫描所有条数而直接扫描二进制位即可囊括所有x#inclu...
2019-03-02 20:43:29
151
原创 反转问题
一维反转问题POJ3276---Face The Right Way题目要求使得反转次数最少时每次连续反转个数最小值;可以枚举所有连续反转个数k(1<=k<=n),对于每一个k求出对应的反转次数;容易想到,左端第一头牛只能被以它为开头的连续长度为k的区间覆盖,如果它朝后,那么必须进行一次反转,而且以后再次反转是无谓的,因而可以从一端开始计算;若此时考虑第i头牛,它能够...
2019-02-27 18:26:13
678
原创 (交互题)Codeforces Round #534 (Div. 2)D---Game with modulo
Codeforces Round #534 (Div. 2)D---Game with modulo易想到对于x和y=2x,如果a大于y,则必定会输出‘y’;而如果a小于等于y,则会输出'x',这时想到可以二分逼近。首先要知道左右边界l,r;初始化l=0,r=1,滚动询问(l,r),如果输出'y',则令l=r,r*=2,否则可以确定a属于(l,r];接下来就是二分搜索,每一次询问(l,...
2019-01-24 22:37:39
229
原创 EOJ Monthly 2018.12 C---她的名字(预处理+组合数)
EOJ Monthly 2018.12 C---她的名字对于每一次询问,可以分为两个部分:①以XY结尾有多少种可能;②对于每一种XY,从X之前的所有数选出N-2个数有多少种可能,就是它的组合数。对于某一S,解决任意询问【N、X、Y】:|S|<N,明显为0;而对于其他情况,由于|S|不大,可以预处理出res[N][X][Y];首先解决①,由于②与X在S中位置有关,因而可以枚举S...
2018-12-27 21:31:28
229
原创 (交互题)EOJ Monthly 2018.11 D. 猜价格
EOJ Monthly 2018.11 D. 猜价格容易想到不断ask(1),如果得到'>',那么该次询问必定为假,那么接下来k次一个周期,第k次必为假;同时运用二分法询问,在n次以内能够得出答案。但是如果n<k,则询问次数有可能大于2n;这时候可以在每次二分询问中询问两次,如果答案不一,那么询问第三次(此次必为真),然后接下来k-3或k-2次以内能得到系统正确作答,而此时最多...
2018-11-24 14:06:44
286
原创 HDU6438---Buy and Resell
HDU6438---Buy and Resell定义a[i]:i城市的能量块价格考虑这样一种情况:有四个城市的能量块价格为a1,a2,a3,a4①如果a3,a4均大于a1,a2,那么利润为(a3+a4)-(a1+a2)②如果a2<a4<a1<a3,如果a3与a2结合那么a4无法与a1结合此时利润x为(a3-a2);如果a3与a1结合,那么利润y为(a4-a2)+(...
2018-11-09 20:36:02
152
原创 codeforce round#505C---Plasticine zebra
codeforce round#505C---Plasticine zebra 可以将这一串字符连成一个环,每一次翻转操作可以看成是以某一个点为起点,逆转方向看;对于一段字符串,两种方向对该段的最大连续间隔长度(类似于wbwb)无影响,因而题目可以转化为求环上所有以任意点为起点最大连续间隔的长度中的最大值;#include <bits/stdc++.h>#defin...
2018-11-07 16:21:28
194
原创 ACM-ICPC 2018 南京赛区网络预赛B--- The writing on the wall
ACM-ICPC 2018 南京赛区网络预赛B--- The writing on the wall逐个扫描每一个格子,设当前扫描的格子为(i, j),定义一种计数方式:以(i,j)为右下角的矩形个数,很明显,有高度为i,i-1,…,1总共i种矩形,同时有宽度为j,j-1,…,1总共j种矩形,共i*j个矩形(如果不排除含黑点的矩形)当前求以(5,3)为右下角的矩形:宽度为1的矩形,只有...
2018-11-03 10:52:09
154
原创 codeforce round#49D---Mouse Hunt
codeforce round#49D---Mouse Hunt可以将题目转化为一个图,每个节点只有一个出度,对于入度为0的点,如果在该点放陷阱,则必须再次在其后继节点放,因而有了额外的花费;不断去掉入度为0的节点后发现最后剩下的一定是一个环,而且不可能是叠加环(因为每个节点出度为1),这时候只需要处理每一个环即可,即取环中花费最小的节点安放陷阱#include<cstdio>...
2018-11-03 10:45:00
209
原创 HDU5881---tea
HDU5881---tea设茶壶初始量为T;对于一般情况,茶壶剩余茶量可能为L到R,第一次倾倒茶量为(double)L/2+0.5,第二次尝试倾倒茶量为(double)L/2+0.5+1,如果T=L、L+1、L+2,第二杯茶量分别为(double)L/2-0.5、(double)L/2+0.5、(double)L/2+1.5,满足茶量差小于等于1,如果T>L+2,则交替往两个茶杯加2单位...
2018-11-03 10:42:55
203
原创 字符串
一、KMP算法int nex[n_max];void getnext(char* p){ int len=strlen(p),k=-1,j=0; nex[0]=-1; while(j<len-1) { if(k==-1||p[j]==p[k]) nex[++j]=++k; else k=nex[k]; }}...
2018-09-11 10:30:43
200
原创 数论
一、欧几里得算法int gcd(int a,int b){ return b==0?a:gcd(b,a%b);}若gcd (a, b)=m,则gcd (a/m, b/m)=1最小公倍数 LCM(a,b)=a/gcd(a,b)*b题目:POJ2773---Happy 2006由题目可知k的范围明显比m大,想到往周期性靠拢由gcd性质可得gcd(a, b)=gcd...
2018-08-27 15:41:20
212
原创 DP
题目:ACM-ICPC 2018 焦作赛区网络预赛B---Mathematical Curse#include <bits/stdc++.h>#define For(i,x,y) for(int i=(x);i<=(y);++i)#define Fov(i,x,y) for(int i=(x);i>=(y);--i)#define Fo(i,x,y) for(...
2018-08-23 21:17:06
233
原创 组合及概率
一、排列组合有重复元素的全排列设一组数中有x种,共有n个数,每种数的个数为ans=题目:ACM-ICPC 2018 焦作赛区网络预赛L---Poor God Water#include <bits/stdc++.h>#define For(i,x,y) for(int i=(x);i<=(y);++i)#define Fov(i,x,y) for(int...
2018-08-20 17:17:30
2287
原创 数据结构
一、队列题目1:POJ2823---Sliding Window#include<cstdio>#include<iostream>#include<algorithm>#include<queue>#include<cstring>#include<string>#include<cctype&g
2018-08-20 17:08:28
323
原创 图论
一、割点在无向连通图中,如果将其中一个点以及所有连接该点的边去掉,图就不再连通题目:POJ1523---SPF求SPF也就是求割点以及每个割点将系统分成几个连通分量Trajan算法选定一个根节点root进行DFS对于根节点,如果有x>=2棵子树,则为割点,并将系统分割为x个连通分量定义dfn[i]为节点i的DFS首次被访问时间,low[i]为i及i的子节点通过回边...
2018-08-10 10:44:38
293
原创 博弈论
如果一个状态可以到达必败态,那么这个状态就是必胜态,而初始状态sg[0]即无牌可抓就处于必败态,n的范围不大,可以递推处理所有状态题目:HDU1847---Good Luck in CET-4 Everybody!#include <bits/stdc++.h>#define For(i,x,y) for(int i=(x);i<=(y);++i)#define F...
2018-08-05 16:48:56
164
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人