自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

坚持不懈

骐骥一跃,不能十步。驽马十驾,功在不舍!

  • 博客(29)
  • 资源 (3)
  • 收藏
  • 关注

原创 UVA 473——Raucous Rockers

题意:给定n个数,放到m个容器里,每个容器的容量是t(n个数的累加和不超过t),在不打乱放的顺序的情况下问最多能放多少个数?思路:多维dp,f[i][j[k]表示前i个数放到第j个容器放k个的最大数量。则不放的状态为f[i-1][j][k],放为f[i-1][j-1][k](放在第一个)f[i-1][j-1][k-v[i]]+1(不是放在第一个)。code:#inclu

2016-03-31 21:22:34 396

原创 Codeforce 189B——Counting Rhombi

题意:给定一个矩形的长和宽,求这个矩形里有多少个菱形(可重叠)。思路:规律题。小学3年级的练习题,直接找有多少的偶数对角线(横纵相乘),两重循环,暴力即可。code:#include using namespace std;int n,m;int main(){ scanf("%d%d",&n,&m); long long ans=0; for

2016-03-31 20:19:50 726

原创 汇编语言——第2次上机实验

实验要求:求表达式x*y+z-200的值实验步骤:1.按照实验要求,画出相应的计算流程图可以看到,先算x*y(保存在dx:cx),然后扩展z为双字节(dx:ax),计算x*y+z-200(保存在bx:cx),然后把结果移到w中。2.按照基本的编辑步骤,编辑代码,并编译。code: DATA SEGMENTX DW 1000Y DW

2016-03-29 10:36:34 875

转载 EAX、ECX、EDX、EBX寄存器的作用

一般寄存器:AX、BX、CX、DXAX:累积暂存器,BX:基底暂存器,CX:计数暂存器,DX:资料暂存器索引暂存器:SI、DISI:来源索引暂存器,DI:目的索引暂存器堆叠、基底暂存器:SP、BPSP:堆叠指标暂存器,BP:基底指标暂存器EAX、ECX、EDX、EBX:為ax,bx,cx,dx的延伸,各為32位元ESI、EDI、ESP、EBP:為si,di,

2016-03-29 09:57:32 1515

转载 IMUL、MUL和div的用法

MUL是进行无符号乘法的指令。MUL(无符号乘法)指令有三种格式:第一种是将8位的操作数于al相乘。第二种是将16位的操作数与ax相乘; 第三种是将32位的操作数与eax进行相乘         乘数和被乘数大小必须相同,乘积的尺寸是乘数/被乘数大小的两倍。 三种格式都既接受寄存器操作数,也接受内存操作数。但是不接受立即操作数(这点大家注意下)。         例如:

2016-03-29 09:53:51 40042 3

原创 uva 10254——The Priest Mathematician

题意:汉诺塔题目的变形,有4根柱子,可以把顶部的k个盘子移到最后的柱子上,然后按照汉诺塔,问最后走的最小步数。思路:递推,经过递推可以发现f[n] = f[k]*2+g[n-k],其中f[n]为4个柱子时的最小步数,g[n]为3根柱子的最小步数。要用java大数来解决。code:import java.math.*;import java.util.Scanner;

2016-03-28 21:37:27 729

原创 UVA 11552——Fewest Flops

题意:给定一个长为s的字符串(其中s为k的倍数),然后按照前后分成s/k 组,每组之内可以重排,使得重排后的块数最少(一段连续的字母算是一块)。思路:区间dp,dp[i][fa]表示前i组且第i+1组的最左边的字符是fa+'a'的状态能得到的最少的块数,那么状态转移也就是枚举两边应该放什么字符。code:#include using namespace std;c

2016-03-28 21:29:15 415 2

原创 UVA 10453—— Make Palindrome

题意:给定一个字符串,求添加最少的字母使得该串是回文串。思路:区间dp+记忆化搜索。dp[i][j]为区间的最小添加数,那么dp[i][j]=min(dp[i+1][j],dp[i][j-1])+1;相等时则为dp[i+1][j-1];code:#include using namespace std;const int INF=0x3f3f3f3f;const

2016-03-27 20:35:00 446

原创 UVA 10891——Game of Sum

题意:给定一个长度为n的序列,两个人分别从两端开始取若干数,但是规定要么左,要么右,问双方都采取最优策略下A的总和减去B的值。思路:区间dp,dp(i,j)表示先手的总和,那么状态转移方程便为dp(i,j)=sum(i,j)-min(左边取,右边取,0(取完)),记忆化搜索。code:#include #include #include #include usi

2016-03-25 22:11:15 346

原创 UVA 10635——Prince and Princess

题意:给定两个长度为p+1和q+1的序列,求两个序列的LCS。思路:如果直接使用朴素的LCS算法则O(pq)会超时,可以把A中出现的元素编码,然后映射到B(只保留AB都存在的元素),这样就转化为求B的LIS问题了O(nlogn)。code:#include using namespace std;const int N=250*250;const int I

2016-03-25 21:49:49 385

原创 UVA 11584—— Partitioning by Palindromes

题意:给定一个串,然后问最少可以分割成多少个回文串。思路:简单dp,dp[i]=min(dp[j]+1,1code:#include using namespace std;const int N=1005;char s[N];int dp[N];bool ok(int l,int r){ while (r>l){ if (s[

2016-03-25 21:27:33 320

原创 uva 10534——Wavio Sequence

题意:给定一个序列,求一个最长的序列,使得他的前半部分是递增的,而后半部分是递减的,且两部分的长度一样。思路:经典的LIS问题,和openjudge登山问题一样,前后各扫一遍,找到前置和倒置的LIS,然后遍历一遍找到最大的ansjicode:

2016-03-25 20:25:55 746

原创 codeforce 185 A——Plant

题意:给定一个大三角形,然后每次按照图片分割成4个小三角形,问n次后有多少个向上的三角形。思路:矩阵快速幂,可以发现,每一个向上的的可以在下一次产生3个向上的,1个向下的,向下的每次可以产生一个向上的和三个向下的。这刚好是矩阵的应用。注意0的情况。code:#include using namespace std;typedef long long ll;con

2016-03-24 09:57:10 435

原创 汇编语言——第1次上机实验

准备:硬件:pc机,32位win操作系统,能够运行dos,某些64位win10系统可能会不支持软件:masm程序实验内容:1.win+r运行dos,cd到指定的masm目录(为了调试方便,所有的文件和程序都放在该目录下)2.edit  filename.asm回车后进行编辑,输入相应的汇编程序。(也可以用nodepad++,vim等二进制文本编辑

2016-03-22 09:36:49 5868

原创 UVA 11136——Hoax or what

题意:超市搞促销,每天都从箱子里拿出最大和最小的差作为促销金额,给出n天的促销情况,问最后总的促销金额。思路:set构造,当有小票的时候放入set,每天结束的时候取出头和尾即可。code:#include using namespace std;typedef long long ll;const int N=1e5+5;ll ans;multisets;

2016-03-21 16:56:24 518

原创 UVA 11988——Broken Keyboard (a.k.a. Beiju Text)

题意:给定一个字符串,然后【会将光标跳转到头,】会将光标调到尾,问最后正确的输入。思路:直接用list来模拟即可,【的时候就在头插,】就在尾插,也可根据递归顺序解。code:#include using namespace std;char s[100001];void dfs(int lt,int rt){ int st=rt; while

2016-03-21 16:49:41 401

原创 UVA 1329——Corporative Network

题意:有n个节点,然后执行I u,v(把u的父节点设为v)和E u(询问u到根节点的距离)。思路:并查集。加了信息的并查集,在路径压缩的同时维护距离d[i];code:#include using namespace std;const int N=2e4+5;int fa[N],d[N];int getfa(int x){ if (x!=fa

2016-03-21 16:44:15 389

原创 UVA 1160——X-Plosives

题意:给定一些化合物(含有两个元素),当满足k个化合物且有k个元素的时候会发生爆炸,问多少个化合物是不能装车的。思路:并查集的简单应用。实际上满足条件的时候是一个环,因此用并查集简单判环即可。code:

2016-03-21 16:02:18 777

原创 UVA 11991——Easy Problem from Rujia Liu?

题意:给定一个数组,然后有若干组询问,每次询问求第k个v出现的位置。思路:用vector构造模拟,吧相同的数的位置放在同一个vector里,对于每次查询输出mp[v][x-1];code:#include using namespace std;map >mp;int main(){ int n,m,k,v; while (~scanf("%d%d",&

2016-03-21 09:35:45 412

原创 UVA 536——Tree Recovery

题意:给定一颗树的先根遍历和中根遍历,然后求后根遍历。思路:先根遍历的第一个为root,然后找到root在中根的位置,进而递归左右儿子求解。code:#include #include #include #include #include using namespace std;char s1[30],s2[30];void sol(int p1,

2016-03-21 08:53:45 310

原创 UVA 514——Rails

题意:给定两个序列A和一到n的排列B,问能否通过一个栈的push和pop操作使得A变成B。思路:直接构造一个栈模拟即可,注意换行。code:#include using namespace std;int v[1005],n;int main(){ while (~scanf("%d",&n)&&n) { while (~sc

2016-03-20 22:35:31 301

原创 UVA 10895——Matrix Transpose

题意:给定一个矩阵(每一行有几个非0的数据,对应的位置以及数值),输出这个矩阵的转置矩阵。思路:直接模拟,用两个vector,一个维护数值,另外一个维护行号。注意长度为0时输出空行。code:#include using namespace std;const int N=10005;vectorv1[N],v2[N];int n,m,v[N];int m

2016-03-20 21:48:21 451

原创 UVA 10410——Tree Reconstruction

题意:给定一颗树的BFS和DFS,求这棵的每个节点。思路:用栈模拟维护。对应的BFS为每个节点到根节点的距离,然后比较当前节点和栈顶节点与根的距离,如果当前节点大,则为栈顶节点的孩子,否则弹出继续比较。code:#include #include #include #include #include #include #include #include

2016-03-20 21:26:58 466

原创 UVA 10588—— Queuing at the doctors

题意:给定n个工人和m个医生,然后进行体检,每个医生每秒接待一个工人,每个人都有一个体检项目顺序和时间,问最后一个员工完成体检的时间。思路:优先队列模拟,建立m个项目的优先队列,当某个工人满足体检时间时,给该工人体检,然后push到下一个项目中去。code:#include using namespace std;const int N=1005;in

2016-03-20 21:11:37 414

原创 CodeForce 168 C——Wizards and Trolleybuses

题意:给定n个火车,加速度,和铁轨长度,然后是每个火车的最大速度和开始出发的时间,问每辆火车到达终点的时刻。思路:暴力。考虑路上的状态可能不太容易思考,那就直接考虑起点和终点,对于一辆车到达的时间不超过前一辆车。即max(原本时间,前一辆的时间)。注意加速不到最大速度就到终点的情况。code:#include using namespace std;const in

2016-03-17 22:09:32 738

原创 CodeForce 180 C ——Letter

题意:给定一定长度的字符串,要求规则必须是所有大写字母必须在小写字母的前面,也就是所谓的11111000模式。思路:暴力,用O(n)的算法处理一下字符串,得到每个字符位前面有多少位小写以及后面有多少大写。然后遍历枚举即可。注意全是大/小写的情况。code:#include using namespace std;const int N=1e5+5;char s[

2016-03-17 22:02:30 776

原创 uva 11997——K Smallest Sums

题意:给定k个含k个数的数列,然后每次从每个序列中取出一个相加,然后问所有的数中前k小的。思路:将每个表排序后然后插入优先队列中,依次是a[0]+b[0],a[0]+b[1],然后不断合并到一张表中,最后打印出来即可。code:#include using namespace std;struct node{ int s,b; node (int

2016-03-14 21:30:15 542

原创 uva 1203—— Argus

题意:给定一个阿格斯系统,每个period周期都会产生一次编号为Q_num的事件,任务是模拟前k个事件。思路:直接按照优先队列的方法来模拟和构造即可。code:#include using namespace std;struct node{ int qnum,period,time; bool operator <(const node &a)

2016-03-14 20:54:34 428

原创 uva 11995——I Can Guess the Data Structure!

题意:给定一个包,然后给定这个包的一些操作以此来判断包的数据结构类型。思路:直接按照stl来模拟即可。code:#include using namespace std;const int N=1000 + 10;int t[N],v[N],n;int check_st(){ stacks; for (int i=0;i<n;i++){

2016-03-14 20:41:37 308

ThinkPHP3.2.1完全开发手册CHM[2014-02-14]

2017-04-20

ACM数论 课件

2017-04-06

windlx计算机体系结构模拟器

计算机体系结构模拟器,windlx

2017-04-06

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除