- 博客(63)
- 资源 (2)
- 收藏
- 关注
原创 HDU 6321 状态压缩
题目:http://acm.hdu.edu.cn/showproblem.php?pid=6321题意:t组测试 每组n个点,m次操作,是一个无向图。 ‘+’ u v 表示增加一条边u,v ;‘-’则相反,保证减边一定存在。 十个点状态dp,用二进制表示这个点的状态。 代码有每一步的解释 #include <bits/stdc++.h>#def...
2018-07-31 21:11:30 309
转载 _builtin_popcount()计算二进制中多少个1
计算一个 32 位无符号整数有多少个位为1Counting out the bits 可以很容易的判断一个数是不是2的幂次:清除最低的1位(见上面)并且检查结果是不是0.尽管如此,有的时候需要直到有多少个被设置了,这就相对有点难度 了。 GCC有一个叫做__builtin_popcount的内建函数,它可以精确的计算1的个数。尽管如此,不同于__builtin_ctz,它并没...
2018-07-31 14:57:32 399
原创 HDU 6319 单调队列
题目:http://acm.hdu.edu.cn/showproblem.php?pid=6319题意:t个测试,第二行六个参数,第三行是k个元素从a[1]到a[k],一共有n个元素,不足的用给出的公式补齐。要你输出从i=1开始,对于长度为m的区间,假设有number个。 要求求出这个区间最大值,以及从左向右扫描最大值变化的次数,注意遇到第一个数...
2018-07-31 10:14:51 427
原创 HDU 4925 Apple Tree(规律 构造)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=4925题意:有一个n行m列的矩阵,对任意一点可以在上面施肥或种树,若种树,则可以收获一个苹果;若施肥,则这块地上下左右四个方向的苹果树产量乘2。问最多收获多少苹果。题解:对于给出的例子,画出矩阵,推导发现间隔种苹果和施肥可以达到最大收获。因为乘二次数越多越划算。让尽量多的苹果树尽量多地乘2....
2018-07-29 09:23:26 154
原创 牛客练习赛23 D
利用全排列函数加vector数组,开十个vector,存a到i字母出现的位置,最后每个vector再push_back(字符串长度加一)作为结束标志。 由于同一字符串只算一个,只要每种情况下有一种字符串就加一,然后全排列函数#include<bits/stdc++.h>using namespace std;int id[10];vector<int&...
2018-07-28 09:55:52 130
原创 HDU 1878 欧拉回路
两个条件判断1.是否不存在奇数度结点2.是否是一个图#include <bits/stdc++.h>using namespace std;const int N=1005;int in[N];int f[N];bool isfa[N];int odd[N];int n;void init(){ for(int i=0;i<N;i++) ...
2018-07-27 11:13:08 173
原创 欧拉路和欧拉回路理论基础
基本概念 1)欧拉路 欧拉路是指从图中任意一点开始到任意一点结束的路径,并且图中每条边通过且只通过一次。也即可以一笔画出。 2)欧拉回路 欧拉回路是指起点和终点都相同的欧拉路。 3)无向连通图存在欧拉路的条件 所有点度都是偶数,或恰有两点度是奇数,则有欧拉路。若有奇数点度,则奇数度点必为欧拉路的起点和终点。 4)有向连通图存在欧拉路的条件 1.每个...
2018-07-27 10:30:37 467
原创 HDU 3018 Ant Trip(欧拉回路)
题意:n个点,m条边。最少画几笔题解:算算度数,并查集随便搞一搞就出来了#include <bits/stdc++.h>using namespace std;const int N=100005;int f[N];bool isfa[N];//是否是父亲 int n,ans;int in[2*N];//度数 int odd[N];//奇数结点 int find...
2018-07-27 10:20:20 225
转载 欧拉路径(一笔画)
定理一 连通的无向图有欧拉路径的充要条件是:G中奇顶点(连接的边数量为奇数的顶点)的数目等于0或者2。连通的无向图是欧拉环(存在欧拉回路)的充要条件是:G中每个顶点的度都是偶数。定理二如果连通无向图G 有 2k 个奇顶点,那么它可以用 k 笔画成,并且至少要用 k 笔画成对有向图来说,一笔画不仅指遍历所有边,而且要遵循正确的方向。 严谨地说,一个连通有...
2018-07-27 09:53:26 575
原创 HDU 1698 Just a Hook
每个结点都是区间和#include <bits/stdc++.h>#define lc (d<<1)#define rc (d<<1|1)#define m (l+r>>1)#define N 100005using namespace std;struct NODE{ int v,laz,l,r;};int n;NO...
2018-07-26 20:17:30 162
原创 线段树理论基础
一。基本概念 线段树(segment tree)是一种二叉搜索树,它的每一个结点对应着一个区间[L,R],叶子节点对应的是一个单位区间,即L==R。对于一个非叶子结点[L,R],它的左儿子所表示的区间为[L,(L+R)/2],右儿子表示的区间为[(L+R)/2+1,R].根据定义,线段树是一棵平衡二叉树,它的叶子结点的数目为N,即整个区间的长度。 例如区间【1,10】的线段树如...
2018-07-26 17:40:54 186
原创 HDU 6315 Naive Operations(线段树+懒惰标记)
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=6315题意:一行给出n,m,有两个数组,长度为n,其中a数组全为0,b数组接下来一行给你n个数接着m行是m条命令:add l r a数组[l,r]区间的数全都加一query l r [l,r] 区间的数 求和, 每个数为a...
2018-07-26 16:44:48 361
原创 HDU 6318 树状数组求逆序数
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6318 #define N 100005#include <bits/stdc++.h>using namespace std;int c[N]; int n;int lowbit(int i){ return i&(-i);}int insert(i...
2018-07-26 10:56:57 197
转载 树状数组逆序数
https://www.cnblogs.com/xiongmao-cpp/p/5043340.html 我们假设一个数组A[n],当A[n]=0时表示数字n在序列中没有出现过,A[n]=1表示数字n在序列中出现过。A对应的树状数组为c[n],则c[n]对应维护的是数组A[n]的内容,即树状数组c可用于求A中某个区间的值的和。 树状数组的插入函数(假设为 void inse...
2018-07-26 10:42:34 108
转载 浅谈线段树
源地址:https://www.cnblogs.com/TheRoadToTheGold/p/6254255.html数据结构——线段树O、引例A.给出n个数,n<=100,和m个询问,每次询问区间[l,r]的和,并输出。一种回答:这也太简单了,O(n)枚举搜索就行了。另一种回答:还用得着o(n)枚举,前缀和o(1)就搞定。那好,我再修改一下题目。B.给出n个数,...
2018-07-26 09:00:57 94
原创 区间更新与点值
#include<bits/stdc++.h>using namespace std;const int MAXN=100005;int n;int bit[MAXN];int c[MAXN],b[MAXN];int lowbit(int x) { return x & (-x);}void updata(int k,int v){//更新区间 ...
2018-07-25 19:31:24 267
原创 树状数组理论基础
树状数组(binary indexed trees,二进制索引树),最早由Peter M. Fenwick于1994年以“A New Data Structure for Cumulative Frequency Tables"为题发表在SOFTWARE PRACTICE AND EXPERIENCE。其初衷是解决数据压缩里的累积频率(cumulative frequency)的计算问题,现多...
2018-07-25 10:14:54 205
原创 HDU 1166 敌兵布阵
http://acm.hdu.edu.cn/showproblem.php?pid=1166题解:此题用树状数组来做,其操作为给某一个兵营增加或减少人数,以及询问i~j营地的人数,可以用树状数组维护前i个营地的人数总数,通过前j个营地的人数的总数减去前i-1个营地的人数总数就得到了i~j营地的总人数了。#include <iostream>#include <bit...
2018-07-25 09:39:27 134
原创 分治算法概念
分治算法的设计思想是,将一个难以直接诶解决的大问题,分割成一些规模较小的相同的问题,以便各个击破,分而治之。 对于一个规模为n的问题,若该问题可以容易地解决(如规模n较小)则直接解决,否则将其分解为k个规模较小的子问题,这些子问题互相独立且与原问题形式相同,递归地求解这些问题,然后将各个子问题的解合并得到原问题的解。这种算法设计策略就是分治算法,简称分治法。 如果原问题可以分割成k...
2018-07-24 20:39:19 226
原创 HDU 1061
http://acm.hdu.edu.cn/showproblem.php?pid=1061题意:求N的N次方是多少。题解:(a*b)%m=((a%m)*(b%m))%m#include <iostream>#include <bits/stdc++.h>using namespace std;#define ll long long ll mod...
2018-07-24 20:24:37 158
原创 HDU 2570 迷瘴
http://acm.hdu.edu.cn/showproblem.php?pid=2570 #include <iostream>#include <bits/stdc++.h>using namespace std;int main(){ int n,t; double vv,w,ans,v; double a[101...
2018-07-24 19:47:48 126
原创 贪心算法理论概述
基本概念 贪心策略是指从问题的初始状态出发,通过若干次贪心选择得出最优值(或较优解)的一种解法其实,从“贪心策略”一词可以看出,贪心策略总是做出在当前看来最优的选择。也就是说,贪心策略并不是从整体上 考虑问题,他所作的选择只是在某种意义上的局部最优解,而许多问题自身的特性决定了该题运用贪心策略可以得到最优解或较优解。 例如:在n行m列的矩阵中找一个最大的数可以用贪心。...
2018-07-24 19:11:34 637
原创 HDU 1052 Tian Ji -- The Horse Racing
http://acm.hdu.edu.cn/showproblem.php?pid=1052 题意:给一个n是双方的马匹数,第一行是田忌的马,第二行是齐王的马,赢了赚200两银子,输了输两百两,平局则没有题解:利用贪心策略, #include <bits/stdc++.h>#include <iostream>using namespace st...
2018-07-24 18:46:49 226
原创 18年暑假多校赛第一场 1004
题目地址http://acm.hdu.edu.cn/showproblem.php?pid=6301 题意:先给一个T,有T个测试然后给出n和m,接下来m行是m个事实,每行是一个【l,r】区间,这区间里的数必须各不相同要你输出字典序最小的n个元素的数组的每一个元素。题解: 如果要求10个数,1到10 不同,也就是n=10,m=1,l=1,r=10,那么答案显然是1 2 3...
2018-07-24 15:39:07 102
原创 18年暑假多校赛第一场 1002
题目地址http://acm.hdu.edu.cn/showproblem.php?pid=6299分四种情况排序,消去一对括号,把’)’的 ‘(’多的放在前面。 重载运算符里面的四种情况后面两种是前面两种的逆向。一对括号是2,答案乘二。(说实话我没看懂题意为什么chen乘2)include <iostream>#include <algorithm>...
2018-07-24 09:53:10 137
原创 _kbhit()与GetAsyncKeyState()
_kbhit()经缓存区有延时;GetAsyncKeyState()通过电路不经过缓冲区
2018-07-18 10:57:44 1194
原创 见缝插针游戏--实现转圈
#include "stdafx.h"#include <graphics.h> // 引用图形库头文件#include <conio.h>#include <math.h>int main(){ int i; int x=500, y=580; int cta = 20; initgraph(1000, 640); // 创建绘图窗口,大小为 6...
2018-07-15 20:42:13 1014
原创 socket---TCP服务器界面
#include "resource1.h"#include<winsock2.h>#pragma comment(lib,"ws2_32.lib")#define DEFAULT_iPort 5000LRESULT CALLBACK DialProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);int WINAPI WinM...
2018-07-15 11:05:37 711
原创 VS 下socket新函数代替旧函数引起的编译错误(转)
error C4996: 'inet_addr': Use inet_pton() or InetPton() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings
2018-07-15 10:56:21 301
原创 如何让你的程序有背景音乐
1.先将MP3格式转化为wav,只能播放wav格式。(下载格式工厂即可转换)2.调用函数PlaySound, 第一个参数:路径 第二个参数:窗口,NULL为全部窗口 第三个参数: 打开方式 PlaySound("D:\\dream.mp3", NULL, SND_FILENAME | SND_ASYNC| SND_LOOP);3.无法使用函数?(点击)打开程序运行,(我下的...
2018-07-13 15:49:53 1251
原创 “PlaySound”: 找不到标识符
1>d:\新建文件夹\windowsproject1\windowsproject1\windowsproject1.cpp(1009): error C3861: “PlaySound”: 找不到标识符在开头引入头文件#include <mmSystem.h>;如果不行在解决方案资源管理器里面(视图中打开,一般在右侧),右键你的项目,点击属性在链接器输入栏附加依赖项写winmm...
2018-07-13 15:00:46 838
原创 俄罗斯方块
//*********************************************////************** 头文件 *********************////*********************************************//#include <windows.h>#include <time.h>#includ...
2018-07-13 10:59:49 443
原创 俄罗斯方块修复BUG版
//*********************************************////************** 头文件 *********************////*********************************************//#include <windows.h>#include <time.h>#includ...
2018-07-12 16:19:31 489
原创 俄罗斯方块
//*********************************************////************** 头文件 *********************////*********************************************//#include <windows.h>#include <time.h>#includ...
2018-07-11 20:01:56 394
原创 方块处理(2) ---十天教会你俄罗斯方块
一.定时器启动定时器UINT_PTR SetTimer(HWND hWnd,UINT_PTR nlDEvent,UINT uElapse,TIMERPROC lpTimerFunc)返回值:成功返回非零参数1:窗口句柄hWnd参数2:定时器ID参数3:间隔时间,毫秒参数4:处理函数的地址,如果为NULL则定时产生WM_TIMER消息关闭定时器BOOL KillTimer(HWND hWnd,UIN...
2018-07-10 15:19:40 344
原创 方块处理(1) ---十天教会你俄罗斯方块
一.显示方块二.产生随机块20行10列的二维数组数组元素初始化成0如果元素值为1,就画方块,否则不画#define SIDE_LEN 30#define G_ARR_ROW (RECT_LOWER_Y/SIDE_LEN)#define G_ARR_RANK (RECT_LOWER_X/SIDE_LEN)//全局变量int g_arrBackGround[G_ARR_ROW][G_ARR_RANK]...
2018-07-10 12:43:56 1200
原创 严重性 代码 说明 项目 文件 行 禁止显示状态 错误 C3861 “time”: 找不到标识符 WindowsProject1 d:\新建文件夹\windowsproject1\windowspro
VS 2017用笔记本运行时,必须要加上而调用函数time时,直接写个#include<time.h>也会报错,未声明标识符,虽然有头文件,但是任然报错。解决方法 :在<stdafx.h>中加入头文件...
2018-07-10 11:30:58 36077
原创 Windows 下窗口画图---十天教会你俄罗斯方块
接上篇:https://blog.csdn.net/qq_41603898/article/details/809683331、WM_PAINT2、Rectangle3、兼容性DC一.在回调函数中补上一种casecase WM_PAINT://窗口变化时重绘hDC = BeginPaint(hWnd,&ps); OnPaint(hDC);//自定义函数,包括Rectangle ...
2018-07-10 10:04:59 1025
原创 什么是DC,什么是兼容性DC
DC全称为Device Content,翻译过来是“设备描述表”或者“设备上下文”。显示图片时都会用到,为什么呢?首先,没有一句C语言可以帮助我们在屏幕上显示图像之类的,我们要想显示图像,最终是调用显卡的驱动程序操作硬件的。不同的显卡,不同的显示器肯定会略有不同,而Windows将这些问题在自己的内部处理了,只给我们提供个一个接口,通过这个接口,我们就能调用这些函数画图了。DC是在窗口上画图,而兼...
2018-07-10 09:43:41 1728
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人