
ACM&Programming
文章平均质量分 57
acmerhlj
这个人很笨,很懒,很无趣;这个人有点疯;这个人再不努力就没戏了。
展开
-
如何在Vjudge创建ZOJ的比赛排名
在ZOJ手动提交代码后,Vjudge爬取提交ZOJ的提交信息创建比赛排名。原创 2022-05-06 16:33:55 · 1367 阅读 · 2 评论 -
用链式前向星存储图
图最常用的存储结构主要是邻接矩阵和邻接表。当顶点数太大时,用二维数组表示的邻接矩阵可能超内存(MLE),而用邻接表的编码工作量较大,此时,使用vector数组或链式前向星模拟邻接表是不错的选择。因vector数组容易理解,这里仅介绍链式前向星存储图。 设有向图的顶点数n=5,边数m=10,输入的边用三个整数from, to, w,分别表示一条边的起点(弧尾顶点)、终点(弧头顶点),边上的权值。输入的10条边如下:3 4 74 1 31 3 52 4 83 2 5...原创 2021-08-04 20:59:04 · 788 阅读 · 3 评论 -
Zju 1268 Is It A Tree?解题分析(附:HDOJ 1325 并查集参考代码)
采用考虑各集合中结点数的并查集求解HDU 1325,ZOJ 1268:判断是否是一颗有向树。注意没有分支(简称为边)也是树(空树)。非空树的判断条件是(1)结点数要等于边数+1;(2)无环;(3)结点连通;(4)无任何结点有多于1个的父结点。附HDU 1325参考代码。原创 2008-05-30 21:18:00 · 901 阅读 · 1 评论 -
DP入门, 0-1背包问题(HDOJ 2602类似)
0-1背包问题。HDU 2602 Bone Collector 类似,但要注意输入顺序和问题规模与本题不同,最重要的是重量为0的骨头居然也有价值的!原创 2011-11-17 23:10:38 · 1028 阅读 · 0 评论 -
字符串与整数互相转换
#include #include #include using namespace std;int str2int(string s)//字符串转换为整数{ int n; stringstream ss(s); ss>>n; return n;}string int2str(int n)//整数转换为字符串{ string s; stringst原创 2008-07-19 15:10:00 · 763 阅读 · 1 评论 -
图论入门,Prim算法求最小生成树代价,HDOJ 1879 继续畅通工程
HDOJ 1879 继续畅通工程,HDOJ 1233 还是畅通工程 类似;HDOJ 图论相关题目:1869 六度分离1863 畅通工程 1875 畅通工程续1301 Jungle Roads 2066 一个人的旅行2112 HDU Today……#includeusing namespace std;#define N 1000#define Ma原创 2011-11-24 23:21:22 · 1204 阅读 · 0 评论 -
图论入门,连通图的深度优先遍历 dfs,HDOJ 1232 畅通工程
HDOJ 1232 畅通工程 参考代码;HDOJ 1213 How Many Tables 类似#includeusing namespace std;#define N 1000#define MaxVal 999int mat[N][N]; //邻接矩阵,mat[i][j]的值为1表示i到j有边,否则无边int visited[N]; //标记数组,值0表示未原创 2011-11-24 22:21:53 · 1017 阅读 · 0 评论 -
DP入门,HDU 2084 数塔 参考代码
HDU 2084 数塔 //DP入门,数塔, HDU 2084//以C++编译器提交#include using namespace std;#define N 100int f[N][N];//状态:f[i,j], 算到第i行j列时的最大值//转移方程:f[i,j]=f[i,j]+max(f[i-1,j],f[i-1,j-1])//初值:直接输入原创 2011-11-17 22:11:39 · 632 阅读 · 0 评论 -
魔术的力量——A Card Trick程序参考(Pku 2200 , Zju 2409)
久无一字,偶来皆叹。懒。年来心意乱。笨鸟笑江郎。魔术力量,欢相伴。A Card Trick (Pku 2200 , Zju 2409)程序参考。好久没有很认真的写程序了,虽然是笨方法,也晒一晒。本题主要在于理解题意。明天有人能破解这个魔术的奥秘吗?使用插入代码功能,发现挺难看,还不如直接扔代码。#include #include #include #include using namesp原创 2009-05-21 20:32:00 · 784 阅读 · 0 评论 -
编辑距离问题 解题分析
编辑距离问题:设A和B是2个字符串。要用最少的字符操作将字符串A转换为字符串B。这里所说的字符操作包括(1)删除一个字符;(2)插入一个字符;(3)将一个字符改为另一个字符。将字符串A变换为字符串B所用的最少字符操作数称为字符串A到B的编辑距离,记为d(A,B)。这一题很多人想到最长公共子串了,Good!但是做出来还要再多一点DP的感觉。准备:a[0]~a[i-1]的子串记为ai,a[0]原创 2008-12-29 09:00:00 · 1084 阅读 · 0 评论 -
背包的感觉(Hdu 2546, Hdu 2159解题分析)
HDU DIY,选了几个DP题,但绝大多数人都卡在破题上了,破题真难呀! 其实Hdu 2546 饭卡是周四晚sqq先想到是个01背包问题,但却是xyb最先(也最快)AC的。破题呀!可以这么看,m元中剩5元买最贵的菜,就可以使剩下的钱最少,其他(m-5)元买尽可能贵的菜就能满足题意。那么就是背包容量为(m-5),物品种数为n-1(除去最贵那种),每种最多买1个的01背包问题。Hdu 2159 F原创 2008-11-17 19:33:00 · 1929 阅读 · 2 评论 -
hdu 1099 Lottery 解题分析
很久没有写点东西了,今天来水一贴。很久前做过hdu 1099,好像没有真搞懂,今天又花了点时间理解、整理了一下。没有真搞懂的感觉真差呀。数学功底太烂了,遇到数学题就头痛,这注定我不能成为真正的高手。没有数学头脑的Acmer都是骗人的。只能慢慢的爬。hdu 1099 Lottery题意:1~n编号的彩票,要买全,等概率条件下平均要买几张。已经买了m张时,买中剩下的概率为1-m/n,则要买的张数为1/原创 2008-11-01 17:58:00 · 1996 阅读 · 0 评论 -
pku 1664 放苹果 csflx 解题分析
整数划分的思想:已知(苹果总数)整数j, 最大加数不超过i(篮子总数),求划分总数 F[i,j]表示将整数j进行划分(其最大加数为i)的可能方式 (第1个篮子只能以1个苹果作为单位进行存放, 第i个篮子只能以i个苹果作为单位进行存放,......) 那么它的状态转移方程可以定义为: F[i,j] = F[i-1,j] + F[i,j-i]; 前者,F[i-1,j] 表示只用到前i-1个篮子 后者转载 2008-10-10 23:09:00 · 1136 阅读 · 0 评论 -
pku 1664 放苹果 解题分析
题目地址:http://acm.pku.edu.cn/JudgeOnline/problem?id=1664方法一、f(i,j):前i个盘总共放j个果的方法数,结果在f(n,m)中,1个盘时不论果数多少,只有1种方法。f(i,j)=f(i-1,j)+f(i,j-i),前者表示第i个盘为空(保证至少1个盘空)放j个果的方法数,后者表示没有1个盘空的方法数,为保证这点,先在每个盘放1个,剩下j原创 2008-10-05 17:03:00 · 1151 阅读 · 1 评论 -
Zju 2726 Constellation 解题分析与测试输出
终于把Zju 2726搞定了,哈哈哈!!!本题的主要注意点是题目中的Notice。Notice: the histogram should show out the exact proportions, however, the height of each bar should be as short as possible (see the samples).例如有10个人,两个星原创 2008-06-23 13:53:00 · 644 阅读 · 0 评论 -
Hdu 1875 畅通工程再续 程序参考
#include#include#includeusing namespace std;const int Max=1001;vector > mat;vector dist;vector visited;int n;int minVertex(){ int next=-1; for (i原创 2008-06-18 16:42:00 · 594 阅读 · 0 评论 -
HDU 2136 Largest prime factor 参考代码
筛选法原创 2014-11-02 16:26:43 · 747 阅读 · 0 评论 -
重载<在集合set与优先队列priority_queue中的不同
昨晚做了一个题目,试着用优先队列方法求解,根据题意重载了运算符#pragma warning(disable : 4786)#includeiostream>#includeset>#includequeue>using namespace std;const int N=10;struct Msg...{ int index; int prior; //原创 2008-05-11 15:01:00 · 1482 阅读 · 0 评论 -
KMP算法学习 & HDU 1686 Oulipo参考代码
KMP讲解推荐视频(来源于https://www.bilibili.com):参考视频1参考视频2定义:真前缀:对于当前位置i,从0~k(0<=k<i)构成的子串;例如:abcd的真前缀有a,ab,abc真后缀:对于当前位置i,从k~i(1<=k<=i)构成的子串;例如:abcd的真后缀有bcd,cd,d最长公共真前、后缀:真前缀和真后缀相同,而且长度最长...原创 2018-08-04 21:35:38 · 458 阅读 · 0 评论 -
使用二分查找求解最长上升子序列
使用二分查找求最长上升子序列原创 2016-12-22 14:54:54 · 778 阅读 · 1 评论 -
Dev-C++ 5.11简单使用说明
点此下载,下载完后解压并双击“Dev-Cpp 5.11 TDM-GCC 4.9.2Setup.exe”,默认安装即可。使用过程如下:0、打开Dev-C++开发环境1、新建源文件,按Ctrl+N(或选File菜单点Source File子菜单)2、输入代码,按Ctrl+S保存,按快捷键F9编译(或选Execute菜单点Compile子菜单)3、编译出错时,双击原创 2016-07-04 14:25:47 · 43728 阅读 · 5 评论 -
图森未来算法科学家李定华浙江ACM省赛现场演讲
“一个简单的AC,一个绝妙的算法,一段漂亮的代码都能让我们感到快乐”转载 2017-04-26 11:10:56 · 1267 阅读 · 1 评论 -
HDOJ 1880 魔咒词典 参考代码
HDOJ 1880 魔咒词典 参考代码,STL之map的使用,map建立Key-Value(键-值)对,根据Key可直接找到Value;按Value找Key则需用迭代器(设为it),则it->second表示it所指元素的Value,it->first表示it所指元素的Key。#pragma warning (disable:4786)#include#include#include原创 2016-10-09 13:39:31 · 665 阅读 · 1 评论 -
HDOJ 2034 人见人爱A-B 参考代码
HDOJ 2033 人见人爱A+B 参考代码,使用STL的set容器。方法1:algorithm中的set_difference。#pragma warning (disable:4786)#include#include#include#includeusing namespace std;int main(){ while(true)原创 2016-10-09 12:24:00 · 876 阅读 · 0 评论 -
Win7安装VC6的关键操作
点setup.exe前先右键设置好兼容性,Win8,Win 10类似,具体可参考百度经验(http://jingyan.baidu.com/article/e52e36154175ec40c60c5195.html)原创 2014-09-19 00:09:28 · 3227 阅读 · 3 评论 -
HDOJ 1003 Max Sum参考程序
最大子段和,DP,考虑起点、终点,特殊处理全为非正数的情况。原创 2015-12-06 12:38:42 · 469 阅读 · 0 评论 -
HDU 1042 N! 参考代码
大整数运算之N!使用一般数组的方法,每个数组元素存放5位数,以避免超时。原创 2014-10-31 14:18:01 · 877 阅读 · 0 评论 -
C语言的freopen使用测试及C++的文件流简单使用
文件操作使用参考,供课程设计学生参考。文本文件1.txt内容如下4行,放在d盘根目录:1 test2 file3 abcde4 12345一、C的freopen使用测试:#include #include using namespace std;int main(){ freopen("d:\\1.txt","r",stdin);//打开文件1.原创 2013-07-10 13:37:44 · 6080 阅读 · 0 评论 -
使用freopen在文件与控制台之间切换输入、输出
使用freopen在文件与控制台之间切换输入、输出#include using namespace std; //先建立文件d:\\1.txt,文件中的内容/*51 2 3 4 5*/int main() { freopen("d:\\1.txt","r",stdin); //从文件 d:\\1.txt中输入数据 freopen("d:\\2.txt","原创 2015-10-28 14:32:26 · 4361 阅读 · 0 评论 -
使用VC2008 Express编写Win32控制台应用程序及其安装(初学者适用)
安装VC20081、双击所下载的安装包,选择setup.exe并双击22、出来安装界面,点下一步3、接受安装协议,点下一步4、点击安装5、等着安装完成及点退出完成安装使用VC2008开发简单C/C++程序的过程1、点击“开始”菜单,选择“所有程序”中的“Microsoft Visual C+原创 2014-09-18 20:27:15 · 4471 阅读 · 0 评论 -
ICPC队伍注册注意事项
ICPC注册注意事项浙江省程序设计竞赛信息网址如下(新一年的省赛则把网址复制到浏览器,再把2015改为当年):http://acm.zju.edu.cn/zjp2015/ 注册教程网址(新一年的省赛则把网址复制到浏览器,再把2015改为当年):http://acm.zju.edu.cn/zjp2015/icpctutorial.php原创 2014-03-18 22:12:15 · 6847 阅读 · 0 评论 -
DP入门,最长上升子序列,ZJU 2136
ZJU 2136状态:f[i],以第i个元素(v[i])为最后一个元素的最长上升子序列的长度方程:f[i]=max(f[j]+1, f[i]), 0<=j<i && v[i]>v[j]初值:f[i]=1,0<=i<n,考虑只有v[i]一个数时的上升序列的长度;若只是f[0]=1,其他f[i]为0,则对于测试:4 2 1 3结果为1,出错!结果:f[]中的最大值原创 2011-11-17 23:56:15 · 760 阅读 · 0 评论 -
Hdu 2100 Lovekey程序参考
#include #include #include using namespace std;string bigAddString(string s, string t){ if (s.size()<t.size()) swap(s,t); reverse(s.begin(),s.end());原创 2008-06-15 16:21:00 · 578 阅读 · 0 评论 -
Hdu 1868 Consecutive sum解题分析
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=1868题意:给1个整数n,表示成连续整数的和,看有几种方法。如:15 = 1+2+3+4+5 = 4+5+6 = 7+8,结果为3。设n可以表示成i个连续整数之和,首项为a,则n=a+(a+1)+……(a+i-1)=i*a+(1+2+……+(i-1))=i*a+(i*(i-1)/2)-->a=(原创 2008-09-02 15:14:00 · 1075 阅读 · 0 评论 -
Zju 2513解题体会
WA了好几次,终于AC了。是个简单题。编程时要的是细心;调试时要的是信心。调试时自己构造测试数据很重要。注意".",";",等输出。主要思路是sort,然后再排个名次。输入有点麻烦。可以在输入一个解题状态时判断是否时间(有:),有则再输入(提交次数),然后加个空格连到这个解题状态上。代码长了,写几个函数很有必要。可以注意以下测试。2 411 team1 1 00:20:00 (1)原创 2008-05-15 17:45:00 · 510 阅读 · 0 评论 -
replace替换及vector整体拷贝
今天好累,看点简单的东西。#include#include#include#includeusing namespace std;void run(){ string s="abc1l21"; replace(s.begin(), s.end(), 1, @); cout vector nums1(10); for(int i=0;i vector nums2(nu原创 2008-05-14 17:25:00 · 4532 阅读 · 0 评论 -
牛刀杀鸡 Zju 2850解题报告
原来的/n被替换为 ,改了一下。#includeiostream>#includevector>using namespace std;const int N=4;vector vectorint> > grass;int m,n;struct Point...{ int row,col;};Point dir[N]=...{...{1,0},...{0,1},...{-1,原创 2008-05-15 22:05:00 · 756 阅读 · 1 评论 -
休息一下
从今天早上开始,http://acm.zju.edu.cn/show_problem.php?pid=1243 RULs把我郁闷坏了,现在终于找到错误的原因了,不亦乐乎!于是休息一下,也回顾一下做这题的过程。昨天看到这题,就想把它搞定,没办法,还是看到简单题就想做。于是早上再详细阅读题目,然后开始做。string,find。很快本地正确了。交上去确实WA!交了若干次,然后放弃。中午再看再交还是WA原创 2008-05-12 14:13:00 · 524 阅读 · 0 评论 -
Hdu 1084 What Is Your Grade?解题报告
#includeiostream>#includevector>#includestring> #includealgorithm>using namespace std; struct Grade...{ int nums; int grade; string times; int index;};vector Grade> g;int cnt[6]; int n;b原创 2008-05-10 17:36:00 · 753 阅读 · 0 评论 -
Zju 1109 Language of FatMouse 解题报告
#includeiostream>#includestring>#includevector>#includealgorithm>using namespace std;struct ZD...{ string yc,ys;};vector ZD> v;bool cmp(ZD s, ZD t)...{ return s.yst.ys;}string binSearch(string原创 2008-05-08 22:46:00 · 613 阅读 · 0 评论