MFC实现http连接、发送和接收数据
#include <afxinet.h>
设置超时
CInternetSe ion se ion;
se ion.SetOption(INTERNET_OPTION_CONNECT_TIMEOUT, 2000);
se ion.SetOption(INTERNET_OP...[2019/1/31]
洛谷P3313 [SDOI2014]旅行(树链剖分 动态开节点线段树)
题意
题目链接
Sol
树链剖分板子 + 动态开节点线段树板子
#include<bit tdc++.h>
#define Pair pair<int, int>
#define MP(x, y) make_pair(x, y)
#define fi first
#d...[2019/1/31]
BZOJ4373: 算术天才⑨与等差数列(线段树 hash?)BZOJ4373: 算术天才⑨与等差数列(线段树 hash?)
题意
题目链接
Sol
正经做法不会,听lxl讲了一种很神奇的方法
我们考虑如果满足条件,那么需要具备什么条件
设mx为询问区间最大值,mn为询问区间最小值
mx - mn = (r - l) * k
区间和 = mn * len + \(\frac{n * (n - 1)}{2} k...[2019/1/31]
C++11新特性之tie、tuple的应用
tuple std::tuple<int, int, int, int, QString> Thorface::getUserInfoToJudgeOpendoor(QString strUserCode)
{
int iunpaidOrderList = 0;
int iunha...[2019/1/30]
C++对象生存期&&static
生存期,即从诞生到消失的时间段,在生存期内,对象的值或保持不变,知道改变他的值为止。对象生存期分为静态生存期和动态生存期两种。
静态生存期
指对象的生存期与程序运行期相同。在namespace中声明的对象都具有静态生存期。但是,在函数内部作用域中声明具有动态生存期的对象,要用stat...[2019/1/30]
泉五培训Day2
T1 旅游
题目
【题目描述】
幻想乡有n个景点(从1开始标号),有m条双向的道路连在景点之间,每条道路有一个人气值d,表示这条道路的拥挤程度。小G不会经过那些人气值大于x的道路,她想知道有多少对景点(a, b)满足她能够从景点a到达景点b。
(a, b)和(b,a)算不同点对,要算两...[2019/1/30]
C++实现json字符串与map的转换
开源资源库
jsoncpp-src-0.5.0.tar.gz: https: ourceforge.net/project jsoncpp/
jsoncpp-master.zip https: github.com/open-source-parser jsoncpp
下面以jsoncpp0...[2019/1/30]
洛谷P2045 方格取数加强版(费用流)
题意
题目链接
Sol
这题能想到费用流就不难做了
从S向(1, 1)连费用为0,流量为K的边
从(n, n)向T连费用为0,流量为K的边
对于每个点我们可以拆点限流,同时为了保证每个点只被经过一次,需要拆点。
对于拆出来的每个点,在其中连两条边,一条为费用为点权,流量为1,另一条费用为...[2019/1/30]
泉五培训Day1
T1 树学
题目
【问题描述】
给定一颗 n 个点的树,树边带权,试求一个排列 P,最大化下式
其中,calc(a, b)表示树上由a到b经过的最大边权。
【输入格式】
第一行一个整数 n,表示点数下接 n − 1 行,每行三个数 u, v, w 表示一条...[2019/1/29]
hdu5691 Sitting in Line(状压dp)
1 #include<iostream>
2 #include<cstdio>
3 #include<cstring>
4 #include<algorithm>
5 #include<cmath>
6 using nam...[2019/1/29]
洛谷P3924 康娜的线段树(期望 前缀和)洛谷P3924 康娜的线段树(期望 前缀和)
题意
题目链接
Sol
思路就是根据期望的线性性直接拿前缀和算贡献。。
这题输出的时候是不需要约分的qwq
如果你和我一样为了AC不追求效率的话直接#define int __int128就行了。。
代码十分清新
#include<bit tdc++.h>
#define i...[2019/1/28]
LOJ#6085. 「美团 CodeM 资格赛」优惠券(set)
题意
题目链接
Sol
考虑不合法的情况只有两种:
进去了 再次进去
没进去 但是出来了
显然可以用未知记录抵消掉
直接开个set维护一下所有未知记录的位置
最优策略一定是最后一次操作位置的后继
同时我们需要记录一下每个人是否在里面
#include<bit tdc++....[2019/1/28]
c/c++ 模板函数的重载c/c++ 模板函数的重载
模板函数的重载
普通函数可以重载,模板函数也可以重载,但规则复杂
有下面2个函数,名字相同,返回值相同就,参数不同,符合重载。
template<typename T>
std::string moban(const T& t){}
template<typename ...[2019/1/28]
LOJ#505. 「LibreOJ β Round」ZQC 的游戏(最大流)
题意
题目链接
Sol
首先把第一个人能吃掉的食物删掉
然后对每个人预处理出能吃到的食物,直接限流跑最大流就行了
判断一下最后的最大流是否等于重量和
注意一个非常恶心的地方是需要把除1外所有人都吃不到的食物删掉
#include<bit tdc++.h>
using name...[2019/1/28]
【题解】 LGP2730 【魔板 Magic Squares】
【题目背景】
在成功地发明了魔方之后,鲁比克先生发明了它的二维版本,称作魔板。这是一张有8个大小相同的格子的魔板:
1 2 3 4
8 7 6 5
【题目描述】
我们知道魔板的每一个方格都有一种颜色。这8种颜色用前8个正整数来表示。可以用颜色的序列来表示一种魔板状态,规定从魔板的左上角开始,沿...[2019/1/28]
BZOJ1802: [Ahoi2009]checker(性质分析 dp)BZOJ1802: [Ahoi2009]checker(性质分析 dp)
题意
题目链接
Sol
一个不太容易发现但是又很显然的性质:
如果有两个相邻的红格子,那么第一问答案为0, 第二问可以推
否则第一问答案为偶数格子上的白格子数,第二问答案为偶数格子上的红格子数
#include<bit tdc++.h>
#define Pair pair&l...[2019/1/28]
使用c语言计算分期贷款折算年化收益率(内部收益率IRR*12)使用c语言计算分期贷款折算年化收益率(内部收益率IRR*12)
众所周知,现在银行的分期贷款利率是很有诱惑性人。表面看利率是很低的,例如招行的闪电贷有时给我的利率是4.3%
但是,由于贷款是分期还本的,我手上的本金每月都在减少,到最后一个月时手上只有少量本金,但是还的利息却还是跟第一个月一样。
excel提供了一个公式叫irr,专门用来计算这种分期...[2019/1/28]
数组题目分享
2019-01-26 16:06:35
1 int main()
2 {
3 int a[2][5] = {2,3,4,5,6,7,8,9,10,11};
4 int *ptr = (int*)(&a+1);
5 cout<<*(ptr-...[2019/1/28]
MFC学习小结
2019/1/13
视频来源: https: www.bilibili.com/video/av20005978/?p=26
一. MFC框架中一些重要的函数
1. InitInstance函数
应用程序类的一个虚函数,MFC应用程序的入口。初始化的作用。
2. Pre...[2019/1/28]
C++17剖析:string在Modern C++中的实现
概述
GCC 8.2提供了两个版本的std::string:一个是基于Copy On Write的,另一个直接字符串拷贝的。前者针对C++11以前的,那时候没有移动构造,一切以效率为先,需要使用COW这种奇技淫巧。后者针对C++11,也就是_GLIBCXX_USE_CXX11_ABI宏被设置为非零...[2019/1/28]
邻接表
用邻接表存储有向图,并输出各顶点的出度和入度
题目来源图论算法
例1.3
首先我们需要定义一些结构体,其用法在注释中使用 # define maxn 100
struct ArcNode{
int adjvex;
有向边的另一个邻接点的序号
ArcNode *nextarc; ...[2019/1/28]
1039: 词组缩写
题目描述
定义:一个词组中每个单词的首字母的大写组合称为该词组的缩写。 比如,C语言里常用的EOF就是end of file的缩写。
输入
输入的第一行是一个整数T,表示一共有T组测试数据。 接下来有T行,每组测试数据占一行,每行有一个词组,每个词组由一个或多个单词组成;每组的单词个...[2019/1/28]
解释器编译器区别,链接器作用。解释器编译器区别,链接器作用。
编译器是把源程序的每一条语句都编译成机器语言,并保存成二进制文件,这样运行时计算机可以直接以机器语言来运行此程序,速度很快;
而解释器则是只在执行程序时,才一条一条的解释成机器语言给计算机来执行,所以运行速度是不如编译后的程序运行的快的.这是因为计算机不能直接认识并执行我们写的语句,它只能认识机器...[2019/1/28]
agc007D - Shik and Game(dp 单调性)agc007D - Shik and Game(dp 单调性)
题意
题目链接
Sol
主人公的最优决策一定是经过熊->返回到某个位置->收集经过的钻石
那么可以直接设\(f[i]\)表示收集完了前\(i\)个位置的钻石的最小时间,转移的时候枚举下最后收集的位置
\[f[i] =min(f[j], p[i] - p[j + 1] + max(...[2019/1/28]
cf900D. Unusual Sequences(容斥 莫比乌斯反演)
题意
题目链接
Sol
首先若y % x不为0则答案为0
否则,问题可以转化为,有多少个数列满足和为y/x,且整个序列的gcd=1
考虑容斥,设\(g[i]\)表示满足和为\(i\)的序列的方案数,显然\(g[i] = 2^{i-1}\)(插板后每空位放不放)
同时还可以枚举一下gcd,设...[2019/1/28]
【算法随笔】最小生成树
最小生成树(MST):[洛谷模版传送门]
一个有 n 个结点的连通图的生成树是原图的极小连通子图,且包含原图中的所有 n 个结点,并且有保持图连通的最少的边。
——度娘百度百科
说白了就是给你一个图,把边权等都给你(特殊情况是相等的)。然后让这些节点全部都连成一...[2019/1/25]
基于gdal的格网插值
格网插值就是使用离散的数据点创建一个栅格图像的过程。通常情况下,有一系列研究区域的离散点,如果我们想将这些点转换为规则的网格数据来进行进一步的处理,或者和其他网格数据进行合并 等处理,就需要使用格网插值算法。 &...[2019/1/25]
一个基于C++11的定时器队列(timerfd,poll实现)
目录
前言
优点
test
源代码
hpp
cpp
@
前言
最近小程序要用到定时器,找了一圈也没找到合适的,最后还是绕回来选择了muduo里面的TimerQueue,整理了下它的代码,独立了出来,因为实在懒得从头写一个- -!。
原来的muduo中TimerQueue是专为Even...[2019/1/25]
c/c++ 模板 类型推断
模板类型的推断
下面的函数f是个模板函数,typename T。下表是,根据调用测的实参,推断出来的T的类型。
请注意下表的红字部分, f(T&& t)看起来是右值引用,但其实它会根据实参的类型,来决定T的类型,如果实参是左值,则它是左值,如果实参是右值,则它是右值。
所以可以看出...[2019/1/25]
c/c++ 右值引用,forward关键字
c++ forward关键字
forward的由来:模板函数中的推导类型,作为另一函数的参数时,不管实参是什么类型,作为另一个参数的实参时,都变成了左值。因为C++里规定函数的形参就是左值,不过调用侧的实参是否是右值。所以,调用的另一个函数的形参即使用T&& arg来声明,传过去的也...[2019/1/25]
c++容器
2019-01-24 22:30:32
记录学习PAT的一些知识,有待更新
注:本文是对Algorithm 算法笔记 的总结
C++标准库模板(Standard Template Library,STL)
【vector】
1.单独定义一个vector&nbs...[2019/1/25]
C++实现机票预订系统C++实现机票预订系统
C++编写一个简单的机票预订系统。该程序显示一个带有下列选项的菜单:预订机票、取消预订、查看某人是否预定了机票,以及显示预订乘客。这些信息保存在一个按照字母排列的名字链表中。在程序的简化版中,假设只为一趟航班预订机票。在完全版中不再限制航班的数目。创建一个航班链表,其中每个节点都指向乘客链表的指针...[2019/1/25]
c++ 一维数组
今天,dgdger带大家认识一下基础必备——一维数组
变量很方便,但如果要存100万个数,就不行了。难道要设100万个变量吗?所以,就有了数组这个东西。
一维数组就像一个队伍,队伍里面的每个元素,都是一个小小的“变量”:
可数组的编号是从0开始的:
数组是这样赋值的:int a[7...[2019/1/24]
【深度优先搜索】NOIP2017_D2T1 洛谷[3958]奶酪
这道题的写法大体有两种:大法师DFS和并查集,两种算法都不难,本篇博客主要讲解DFS,而且测试数据特水,连个剪枝都不用都可以过。
题目描述[luogu传送门]
现有一块大奶酪,它的高度为 h,它的长度和宽度我们可以认为是无限大的,奶酪 中间有许多 半径相同 的球形...[2019/1/23]
C++17剖析(1):string_view的实现,以及性能
主要内容
C++17标准发布,string_view是标准新增的内容。这篇文章主要分析string_view的适用范围、注意事项,并分析string_view带来的性能提升,最后从gcc 8.2的libstdc++库源码级别分析性能提升的原因。
背景知识:静态字符串的处理
所谓静态字符串,就是...[2019/1/23]
编程计算1到10的和
1 #include <iostream>
2
3 int main()
4 {
5 cout<<1+2+3+4+5+6+7+8+9+10;
6 }
这个问题相当困难,花了好长时间才解决,以上是代码 原文链接:http: www.cnblogs.com/WS...[2019/1/23]
GetPixelAddress()函数Alpha通道会丢失
CImage类中GetPixelAddre ()函数来设置获取对应的颜色值是发现Alpha无效。
void CGBImage::Load(){
CImage sourceImage;
sourceImage.Load(L"C:\\Users\\Ju''k\\Desktop\\CGa...[2019/1/23]
博弈论入门 Bash 、Nim 、Wythoff‘s Game结论及c++代码实现
SG函数先不说,给自己总结下三大博弈。和二进制及黄金分割联系密切,数学真奇妙,如果不用考试就更好了。 1.Bash Game:n个物品,最少取1个,最多取m个,先取完者胜。 给对手留下(m+1)的倍数肯定获胜。若n%(m+1)==0,先手必败。 51nod裸题:1066 1 ...[2019/1/23]
简单的素数问题(C++)
【问题描述】
已知三个素数的和为 n ,正整数 n 由键盘输入,计算并输出这三个素数乘积的最大值。
【代码展示】
# include<iostream> using namespace std; int sushu(int x){ for(int...[2019/1/23]
输出1-n的全排(递归C++)
【问题描述】
输出1到n之间所有不重复的排列,即1到n的全排,要求所产生的任一数列不含有重复的数字.
【代码展示】
#include<iostream> using namespace std; int a[100],b[1...[2019/1/23]
C++11/14的新特性(更简洁)
新的字符串表示方式——原生字符串(Raw String Literals) C/C++中提供了字符串,字符串的转义序列,给输出带来了很多不变,如果需要原生义的时候,需要反转义,比较麻烦。 C++提供了,原生字符串,即字符串中无转义,亦无需再反义。详细规则见带码: #include &l...[2019/1/23]
C++11/14 线程中使用Lambda函数的方法
多线程中使用lambda
在本篇文章中,主要介绍lambda函数在多线程中的使用。
先从下面的例子开始吧:
#include <iostream>
#include <thread>
int main()
{
std::thre...[2019/1/23]
C++11/14 线程的创建与分离的实现
线程的创建
让我们看看示例代码(t1.cpp).
#include <iostream>
#include <thread>
void thread_function()
{
std::cout << "thread functi...[2019/1/23]
[P5172] Sum
のすたの“类欧几里得算法”第一题 sum
【题意】
给入\(n,r\),求\(\sum_{d=1}^n(-1)^{\lfloor d\sqrt r \rfloor}\)。
【分析】
只需要考虑所有\(d\)中,\(\lfloor d\sqrt r\rfloor\)为偶数的个数。显然\(\lf...[2019/1/22]
【算法随笔】写一个自己的名词空间
C++比C多了很多实用的东西,像cla 类,使得C++能够更好的OOP,struct也有了构造函数等等。还有一个东西是名词空间。想必大多数人不会对下面这句话陌生:
using namespace std;
也就是引用了名词空间std(standard)。
看上去很高大上对不对?...[2019/1/22]
【亲测可行】Dev c++调试、运行报错解决方法总结 - Westerlund1-26
一、编译后 0错误 0警告,但是开始出现‘‘停止运行’’或者进行输入时出现‘‘停止运行’’
可能的原因:
结构体指针为空,但调用了其成员。
有些scanf语句中忘记添加取址符。
无法跳出递归。
二、一调试程序就停止运行。
解决方法:找到Dev c++的工具&g...[2019/1/22]
C++编程查看指针变量的值
#include <iostream>
int main()
{
int ***********p = nullptr;
cout<<******p;
return 0;
}
原文链接:http: www.cnblogs....[2019/1/22]
重载操作符 'operator'
operator 是 C++ 的(运算符的)重载操作符。用作扩展运算符的功能。
它和运算符一起使用,表示一个运算符函数,理解时应将 【operator+运算符】 整体上视为一个函数名。
要注意的是:一方面要使运算符的使用方法与其原来一致,另一方面扩展其功能只能通过函数的方式(c++...[2019/1/21]
BZOJ2337: [HNOI2011]XOR和路径(期望 高斯消元)
题意
题目链接
Sol
期望的线性性对xor运算是不成立的,但是我们可以每位分开算
设\(f[i]\)表示从\(i\)到\(n\)边权为1的概率,统计答案的时候乘一下权值
转移方程为
\[f[i] = (w = 1) \frac{1 - f[to]}{deg[i]} +(w = 0) \f...[2019/1/21]
多重背包模板
2019-01-19
多重背包:每种东西有多个,因此可以把它拆分成多个01背包
优化:二进制拆分(拆成1+2+4+8+16+...,分别表示2的n次幂)
比如18=1+2+4+8+3,可以证明18以内的任何数都可以用这几个数的和或差表示(每个数只能用一次)(0时则背包为空),
所以就把2个...[2019/1/21]