cstring

Level Up

被刻印的时光 ゝ 提交于 2020-04-16 08:18:40
【推荐阅读】微服务还能火多久?>>> 题意:Steve玩魔兽世界要做任务升两级,任务在你不同的等级给的经验不同,输入任务数量和升第一级和升第二级需要的经验,接着输入每个任务第一级完成给的经验和花费的时间、第二级级完成给的经验和花费的时间。求要升两级最少要花多少时间,如果不能则输出-1。 题解: 由题目数据可以直接想到用动态规划来做,因为最多需要的经验只有五百,因此可以开DP[I][J][K](记得开为long long,INF也得更换,我因为这个卡了很久),i代表第一级的经验,J代表第二级的经验,K代表第几个任务。具体见代码注释。 #define _CRT_SECURE_NO_DepRECATE #define _CRT_SECURE_NO_WARNINGS #include <cstdio> #include <iostream> #include <cmath> #include <iomanip> #include < string > #include <algorithm> #include <bitset> #include <cstdlib> #include <cctype> #include <iterator> #include <vector> #include <cstring> #include <cassert> #include <map>

Level Up

这一生的挚爱 提交于 2020-04-16 08:11:28
【推荐阅读】微服务还能火多久?>>> 题意:Steve玩魔兽世界要做任务升两级,任务在你不同的等级给的经验不同,输入任务数量和升第一级和升第二级需要的经验,接着输入每个任务第一级完成给的经验和花费的时间、第二级级完成给的经验和花费的时间。求要升两级最少要花多少时间,如果不能则输出-1。 题解: 由题目数据可以直接想到用动态规划来做,因为最多需要的经验只有五百,因此可以开DP[I][J][K](记得开为long long,INF也得更换,我因为这个卡了很久),i代表第一级的经验,J代表第二级的经验,K代表第几个任务。具体见代码注释。 #define _CRT_SECURE_NO_DepRECATE #define _CRT_SECURE_NO_WARNINGS #include <cstdio> #include <iostream> #include <cmath> #include <iomanip> #include < string > #include <algorithm> #include <bitset> #include <cstdlib> #include <cctype> #include <iterator> #include <vector> #include <cstring> #include <cassert> #include <map>

树形dp

那年仲夏 提交于 2020-04-12 17:53:12
acwing 1072.树的最长路径 https://www.acwing.com/problem/content/1074/ 如何在一颗有边权的树上求树的直径?方法是:任取树上一点,求出距离该点距离的最大值和次大值,相加即是路径, 遍历所有点,求出最长的路径。 如何在一颗没有边权的树上求树的直径?方法是:任取树上的一个点$a$, 找到离该点最远的一个点$u$,那么 $u$一定是某一条直径的端点 ,从$u$开始找到离$u$最远的点$v$,那么$u-v$就是树的一条直径。将所有的直径取最大值,就是树的最长路径。( 本题的做法是在有边权的树上求树的直径 ) 核心在于为什么 $u$一定是某一条直径的端点。 证明: (1)当$au$和$bc$不相交时:假设$a$为树上的任意一点,$u$为离$a$最远的一点并且$u$不是某一直径的端点,$bc$为树上的一条直径。因为是一颗树,所以是连通的,所以$au$和$bc$中间有两个点相连。因为$u$是离$a$最远的一个点,所以①>=②+③,所以①+②>=③,所以存在一一条路径$bu$比当前的直径$bc$更长,矛盾。所以$u$一定是某一直径的端点。 (2)当$au$和$bc$相交时:因为$u$是离$a$最远的一点,所以④>=③,那么①+④>=①+③, 与$bc$是直径矛盾,所以$u$一定是某一直径的端点。 1 #include <iostream> 2

学军信友队趣味网络邀请赛 b题 齐心抗疫(树的直径)

喜你入骨 提交于 2020-04-08 17:48:59
题目描述 对于所有数据,满足2<=n<=50000,1<=a[i]<=1000。 题目思路 前言 本来我以为是最短路什么的。。。结果是我太菜,个人认为此题还是补充了自己知识,学到了不少 知识 树的直径表示最长的那段路径,显然可以任意点进行dfs求这一点到任意一点的最长距离,则那个点为直径的一个端点,然后在端点dfs找出最长距离,另一个点就是直径的另外一个端点。 正文 其实最后就三次dfs解决问题 代码 #include<algorithm> #include<iostream> #include<cstring> using namespace std; const int maxn=5e4+5; int n,a[maxn],cnt,head[maxn],u,v,pos[maxn],x,y,ans; struct node{ int to,next; }e[maxn<<1]; void add(int u,int v){ e[++cnt].to=v; e[cnt].next=head[u]; head[u]=cnt; } void dfs(int son,int fa,int cnt){//儿子,父亲,要走多少步 pos[son]=max(pos[son],cnt); for(int i=head[son];i;i=e[i].next){ if(e[i].to!=fa){ dfs

C++读写ini配置文件GetPrivateProfileString()&WritePrivateProfileString()

可紊 提交于 2020-04-08 14:21:11
转载: 1. https://blog.csdn.net/fengbingchun/article/details/6075716 2. 转自: http://hi.baidu.com/andywangcn/blog/item/10ba730f48160eeb37d122e9.html 配置文件中经常用到ini文件,在VC中其函数分别为: #include <Windows.h> //wince,WMobile.ppc不支持这几个函数 写入.ini文件:bool WritePrivateProfileString(LPCTSTR lpAppName, LPCTSTR lpKeyName, LPCTSTR lpString, LPCTSTR lpFileName); 读取.ini文件:DWORD GetPrivateProfileString(LPCTSTR lpAppName, LPCTSTR lpKeyName, LPCTSTR lpDefaut, LPSTR lpReturnedString, DWORD nSize, LPCTSTR lpFileName);函数返回值为string的长度(long型),而从ini文件获得的字符串则保留在目的缓冲器中 读取整形值:UINT GetPrivateProfileInt(LPCTSTR lpAppName,LPCTSTR

CString与LPCWSTR、LPWSTR、LPSTR、char*等类型的转换

≯℡__Kan透↙ 提交于 2020-04-07 15:44:25
参考 https://blog.csdn.net/sl159/article/details/6412171 一.CString与LPCWSTR LPCWSTR 是Unicode字符串指针,初始化时串有多大,申请空间就有多大,以后存贮若超过则出现无法预料的结果,这是它与CString的不同之处。 CString是一个串类,内存空间类会自动管理。 CString转换成LPCWSTR //方法一: CString strFileName; LPCWSTR lpcwStr = strFileName.AllocSysString(); // 方法二: CString str=_T("TestStr"); USES_CONVERSION; LPCWSTR lpcwStr = A2CW((LPCSTR)str); 二.CString与LPWSTR 一.CString与LPSTR 一.CString与char* 来源: https://www.cnblogs.com/a-s-m/p/12653519.html

算法设计与分析/动态规划——最长公共子序列LCS及模板

瘦欲@ 提交于 2020-04-06 09:43:14
摘自 https://www.cnblogs.com/hapjin/p/5572483.html 这位大佬写的对理解DP也很有帮助,我就直接摘抄过来了,代码部分来自我做过的题 一,问题描述 给定两个字符串,求解这两个字符串的最长公共子序列(Longest Common Sequence)。比如字符串1: BD CA BA;字符串2:A BCBD AB 则这两个字符串的最长公共子序列长度为4,最长公共子序列是:BCBA 二,算法求解 这是一个动态规划的题目。对于可用动态规划求解的问题,一般有两个特征:①最优子结构;②重叠子问题 ①最优子结构 设 X=(x1,x2,.....xn) 和 Y={y1,y2,.....ym} 是两个序列,将 X 和 Y 的最长公共子序列记为LCS(X,Y) 找出LCS(X,Y)就是一个 最优化问题 。因为,我们需要找到X 和 Y中 最长的 那个公共子序列。而要找X 和 Y的LCS,首先考虑X的最后一个元素和Y的最后一个元素。 1)如果 xn=ym ,即X的最后一个元素与Y的最后一个元素相同,这说明该元素一定位于公共子序列中。因此,现在只需要找:LCS(X n-1 ,Y m-1 ) LCS(X n-1 ,Y m-1 )就是原问题的 一个 子问题。为什么叫子问题?因为它的规模比原问题小。(小一个元素也是小嘛....) 为什么是最优的子问题?因为我们要找的是X

算法设计与分析/动态规划——最长公共子序列LCS及模板

荒凉一梦 提交于 2020-04-06 09:31:52
摘自 https://www.cnblogs.com/hapjin/p/5572483.html 这位大佬写的对理解DP也很有帮助,我就直接摘抄过来了,代码部分来自我做过的题 一,问题描述 给定两个字符串,求解这两个字符串的最长公共子序列(Longest Common Sequence)。比如字符串1: BD CA BA;字符串2:A BCBD AB 则这两个字符串的最长公共子序列长度为4,最长公共子序列是:BCBA 二,算法求解 这是一个动态规划的题目。对于可用动态规划求解的问题,一般有两个特征:①最优子结构;②重叠子问题 ①最优子结构 设 X=(x1,x2,.....xn) 和 Y={y1,y2,.....ym} 是两个序列,将 X 和 Y 的最长公共子序列记为LCS(X,Y) 找出LCS(X,Y)就是一个 最优化问题 。因为,我们需要找到X 和 Y中 最长的 那个公共子序列。而要找X 和 Y的LCS,首先考虑X的最后一个元素和Y的最后一个元素。 1)如果 xn=ym ,即X的最后一个元素与Y的最后一个元素相同,这说明该元素一定位于公共子序列中。因此,现在只需要找:LCS(X n-1 ,Y m-1 ) LCS(X n-1 ,Y m-1 )就是原问题的 一个 子问题。为什么叫子问题?因为它的规模比原问题小。(小一个元素也是小嘛....) 为什么是最优的子问题?因为我们要找的是X

MFC文件复制、删除

主宰稳场 提交于 2020-04-04 03:34:59
VC:文件操作大全,打开,保存,复制,删除,查找等 各种关于文件的操作在程序设计中十分常见,如果能对这些操作都了如指掌,就可以根据实际情况找到最佳的解决方案,从而可以在较短的时间内编写出高效的代码。本文对Visual C++中有关文件操作进行了全面的介绍,并对在文件操作中经常遇到的一些疑难问题进行了详细分析。 1. 文件的查找 当对一个文件操作时,如果不知道该文件是否存在,就要首先进行查找。MFC中有一个专门用来进行文件查找的类“CFileFind”,使用它可以方便快捷地进行文件的查找。下面这段代码演示了这个类的最基本使用方法。 CString strFileTitle; CFileFind finder; BOOL bWorking = finder.FindFile(“C:\windows\sysbkup\*.cab”); while(bWorking) { bWorking=finder.FindNextFile(); strFileTitle=finder.GetFileTitle(); } 2. 文件的打开/保存对话框 让用户选择文件进行打开和存储操作时,就要用到文件打开/保存对话框。MFC的类“CFileDialog”用于实现这种功能。使用“CFileDialog”声明一个对象时,第一个BOOL型参数用于指定文件的打开或保存,当为TRUE时将构造一个文件打开对话框

CFileFind类的使用总结

六月ゝ 毕业季﹏ 提交于 2020-04-03 11:46:56
CFileFind类的使用总结(转) CFileFind类的使用总结 2007-7-7 1、CFileFind类的声明文件保存在afx.h头文件中。 2、该类的实现的功能:执行本地文件的查找(查找某个具体的文件,查找某类文件x*.x*,查找所有文件*.*) 3、CFileFind类是CGopherFileFind和CFtpFileFind类的基类。 4、CFileFind类的构造函数::CFileFind()和关闭函数::Close()我会成对使用。 5、CFileFind类的成员函数我根据其操作特性划分为3类:查找操作类、获得文件属性类、判断文件属性类。(下面我先进行函数罗列并没有完整的描述函数的参数) 查找操作类 ::FindFile(); ::FindNextFile(); 获得文件属性类 ::GetCreationTime(); ::GetLastAccessTime(); ::GetLastWriteTime(); ::GetFileName(); ::GetRoot(); ::GetFilePath(); ::GetFileTitle(); ::GetFileURL(); ::GetLength(); 判断文件属性类 ::IsArchived(); ::IsCompressed(); ::IsDirectory(); ::IsDots(); ::IsHidden();