- 浏览: 14456 次
最新评论
文章列表
1,求区域中矩形最多重叠的个数
题目网址:https://www.nowcoder.com/test/question/done?tid=14633045&qid=152611#summary
解题思路:首先考虑暴力解,要想求得最大重叠区域,就遍历每个点最多在多少个矩形中出现,但是由于点坐标过大, ...
socket编程花了我三四天的事件终于将这个程序给实现了
所谓的多人聊天室,其实不过是客户端创建一个数据接收线程和数据发送线程,而在服务器端创建一个套接字数组,开启一个接受连接请求线程,不断接 ...
树莓派 摄像头安装配置
- 博客分类:
- Python树莓派编程
在网上有不少树莓派安装配置摄像头的教程,但是或多或少有些错误的地方,本人综合尝试了几次后,发现如下步骤是没有问题的!!
摄像头是采用树莓派专用摄像头,将摄像头接线插入树莓派接线槽内后。需要对摄像头进行配置。
主要步骤如下:
1.打开终端,摄像头驱动所需要的库,依次输入执行以下命令行:
sudo apt-get update
sudo apt-get install subversion
sudo apt-get install libjpeg8-dev
sudo apt-get install imagemagick
sudo apt-get ...
Java中的HashMap类的方法使用
- 博客分类:
- Java
大学前三年用C++比了三年赛,什么项目也没做过!Java基本没学。最后一年玩的很嗨,之前的ACM的东西也差不多忘得一干二净。现在到研究生阶段跟个小学生一样从头学起,唉,都是自己作的啊!
话归正传,对于HashMap类来说,我发现Java中的类和C的结构体很像啊!我在学这个类的get方法时,在写那个Object user = new User();//创建一个对象之前写的是User user = new User();结果一直错误!后面发现是因为这个地方只能创建一个对象而不是用User去创建一个实例。这会不会也在隐约告诉我对象和实例的区别呢??有待思考!
package com.xuex ...
因为在递归的过程中,总是选择最小的i,所以最先求到的解肯定是字典序最小的,我觉得这也是这道题用这个算法的原因,因为我觉得这个算法对减时没有什么卵用
#include <stdio.h>
#include <stack>
#include <string.h>
using namespace std;
int L,n,cnt;
int s[1010];
int dfs(int cur)
{
if(cnt++==n)
{
for(int i=0;i<cur;i++)
pr ...
#include <bits/stdc++.h>
using namespace std;
int num[8],dp[10000+10];
int cmp(int x,int y)
{
return x>y;
}
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
for(int i=1;i<7;i++)
scanf("%d",&num[i]);
...
#include <stdio.h>
#include <string.h>
#define lowbit(i) i&(-i)
#define maxn 300000
using namespace std;
int a[maxn],c[maxn],p[maxn];
int fd(int x)
{
return x==p[x] ? x :fd(p[x]);
}
void update(int x,int val)
{
while(x<=maxn)
{
c[x]+=val;
...
#include<iostream>
#include<stdio.h>
#include<string.h>
using namespace std;
#define M 1000005
struct tree{
int left,right,sum,lazy;
};
tree g[M];
int map[M];
void pushDown(int i)
{
if(g[i].lazy)
{
g[2*i].lazy=1;
g[2*i+1].lazy=1;
g[i].lazy=0;
g[2* ...
#include <stdio.h>
#include <algorithm>
#include <string.h>
#include <queue>
#include <stack>
using namespace std;
int dir[]={-1,0,1,0};
int dil[]={0,-1,0,1};
int num[6][6];
int visit[6][6];
int d[30];
struct node
{
int x,y,id;
}a[30];
int cet;
void ...
#include <stdio.h>
#include <string.h>
using namespace std;
const int maxn = 1000000+10;
char s[maxn],t[maxn];
int next[maxn];
int m,n,k,l,i,T;
void get_next(char str[])
{
memset(next,0,sizeof(next));
next[1] = 0;
int len = strlen(str+1),k=0;
for(int i=2;i< ...
来一发代码,先前后两两比较,如果前一个串是后一个串的字串,那他就是没必要的,假设第i个串是i+1的子串,如果在后面循环比较中,如果第i+1个串是后面串的子串,那i个串就没有比的必要了,如果第i+1不是后面串的子串,直接结束循环,查找结束,得出结果
#include <bits/stdc++.h>
int next[10005];
int T;
char s[505][2005];
bool v[550],flag;
void getnext(char str[],int len)
{
int k=0;
next[1]=0;
for(i ...
#include <bits/stdc++.h>
using namespace std;
#define lowbit(i) i&(-i)
const int N = 1000000 +10;
int n,m,k,l,r;
int a[N];
int getsum(int i)
{
int xx = 0;
while(i>0)
{
xx+=a[i];
i-=lowbit(i);
}
return xx;
}
void update(int i,int val)
...
poj 3468 树状数组
- 博客分类:
- acm
http://kenby.iteye.com/blog/962159
///我只想存个代码,思路来源解法都是上面那个网站看的
#include <stdio.h>
#include <string.h>
using namespace std;
const int N = 100000+10;
long long det[N],num[N],sum[N];
long long c1[N],c2[N];
int l,r,m,n;
char st[10];
int lowbit(int x)
{
return x&(-x);
}
v ...
网上很多博客都只给了代码,这对于很多刚接触树状数组的人来说往往一头雾水。我说一下主要思路:你每次更新一个点的时候(加一个数),后面所有的点的前缀和都会相应的加上这个数,这其实就相当于这个数受了这个点影响,你每次画一个点的时候,其实就相当于画了它后面所有的点,然后你把那些不必要画的点受的影响减回来就行
#include <bits/stdc++.h>
#define lowbit(i) i&(-i)
using namespace std;
const int N = 100000+10;
int a[N],n,m,k,l,r;
void update(in ...
原理:求和时c数组存的是相应区间的和,而在这c数组(mkx数组)求的是相应区间的最大值
#include <bits/stdc++.h>
using namespace std;
const int N = 400000+100;
int n,m,k,l,r;
int a[N];
int mkx[N],num[N];
char s[10];
int lowbit(int x)
{
return x&(-x);
}
void init()
{
for(int i=1;i<=n;i++)
{
mkx[ ...