小新三连(二):小新在努力 ZZULIOJ - 2482 二分
题解 水题不做 每次做自身水平+提升上限范围内最大的 即能做出来的最难的题 因为数字过多使用二分查找优化 代码直接使用的STL更加方便 AC代码 #include <stdio.h>
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int INF = 0x3f3f3f3f;
const int MAXN = 1e6 + 10;
int a[MAXN];
int main()
{
#ifdef
小新三连(一):小新在打牌 ZZULIOJ - 2481 模拟
题解 计算对手和自身已有牌的和并对M取模 计算过程中统计剩余牌的数量 尝试所有剩余的牌 如果可以赢则赢 不能赢能平就平 AC代码 #include <stdio.h>
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int INF = 0x3f3f3f3f;
int toVal(char *c) //将牌的字符串转为数值
{
if (strlen(c) == 2)
return 10;
程序员的背包 ZZULIOJ - 2485 离散化 dp lis | 树状数组
题解 经典的最长上升子序列问题 数值过大使用离散化处理 数值过多使用二分优化dp AC代码 #include <stdio.h>
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int INF = 0x3f3f3f3f;
const int MAXN = 5e4 + 10;
int a[MAXN], d[MAXN], p[MAXN]; //d[i]以i为结尾的上升子序列长度 p[i]长度为i的
一个人的旅行 HDU - 2066 dijkstra
题解 使用dijkstra算法+堆优化 处理时将所有起点加入队列并设置起点代价为0 跑完最短路在所有终点中选代价最小的一个 注意为无向图 AC代码 #include <stdio.h>
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int INF = 0x3f3f3f3f;
const int MAXN = 5e5 + 10;
int N, S, D; //路径 起点 终点
int a[MA
find the nth digit HDU - 1597 二分 思维
题解 打表计算1+2+3+…+N的所有和 二分查找到第一个小于N的那个和 N减去他 接下来就是9个一循环 N = (N - 1) % 9 + 1得到是哪个数字 AC代码 #include <stdio.h>
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int INF = 0x3f3f3f3f;
int main()
{
#ifdef LOCAL
freopen("C:/input.tx
今年暑假不AC HDU - 2037 贪心
题解 使用贪心算法 贪心策略按照结束时间排序每次选取 开始时间最晚的一个 AC代码 #include <stdio.h>
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int INF = 0x3f3f3f3f;
const int MAXN = 110;
struct node
{
int a, b;
bool operator < (const node &oth) //结束时间升序
Arctic Network POJ - 2349 Kruskal
题解 根据题意 需要将所有点联通 但是有M个卫星通信装置 所以可以省去M-1条边 先使用Kruskal跑最小生成树 再减去M-1条较大边剩下的取最大为答案 AC代码 #include <stdio.h>
#include <iostream>
#include <vector>
#include <algorithm>
#include <math.h>
using namespace std;
typedef long long ll;
const int INF = 0x3f3f3f3f
Codeforces Round #528 (Div. 2) A. Right-Left Cipher 模拟
题解 题目大意 给一个加密后的串 问原串是什么 加密规则是第一个字符在中间后面的右边一个左边一个 计算第一个的位置 然后然后两个指针模拟即可 AC代码 #include <stdio.h>
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int INF = 0x3f3f3f3f;
int main()
{
#ifdef LOCAL
//freopen("C:/input.txt", "r"
Codeforces Round #528 (Div. 2) B. Div Times Mod 暴力
题解 题目大意 给N和K 根据公式(x div k) * (x mod k) = n问最小的x 先用i枚举x % k的值 在n能被i整除的情况下 n / i=x / k 则n / i * k为满足x / k最小的x 加上i则为真实的x 答案取最小 AC代码 #include <stdio.h>
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int INF = 0x3f3f3f3f;
int
Codeforces Round #528 (Div. 2) C. Connect Three 思维
题解 题目大意 一个格子图 给三个人坐标 问联通所需要开发的最少方块数量 按照纵坐标排序 abc分别为左中右 将b的位置纵向扩展到a和c的高度 然后a和c向b横向汇聚 AC代码 #include <stdio.h>
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int INF = 0x3f3f3f3f;
int main()
{
#ifdef LOCAL
freopen("C:/inpu
Codeforces Round #528 (Div. 2) D. Minimum Diameter Tree 思维
题解 题目大意 一个树 让你设定权值要求所有权值和为s 问任意两点间数值和的最大值的最小情况 当权值评分到所有叶子节点上才能保证代价最小 答案为 S / 叶子节点数量 * 2 AC代码 #include <stdio.h>
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int INF = 0x3f3f3f3f;
const int MAXN = 2e5 + 10;
int d[MAXN];
Linux内核分析 - 网络:netif_receive_skb平台报文入口函数详解
网络收包流程从网卡驱动开始,一直往上,涉及NAPI、GRO、RPS等特性,但是一般最后都会调用__netif_receive_skb函数: 函数主要有几个处理: 1、vlan报文的处理,主要是循环把vlan头剥掉,如果qinq场景,两个vlan都会被剥掉; 2、交给rx_handler处理,例如OVS、linux bridge等; 3、ptype_all处理,例如抓包程序、raw socket等; 4、ptype_base处理,交给协议栈处理,例如ip、arp、rarp等; static in
Linux内核分析 - 网络:网桥原理分析
网桥数据包的处理流程 网桥处理包遵循以下几条原则: 1. 在一个接口上接收的包不会再在那个接口上发送这个数据包; 2. 每个接收到的数据包都要学习其源地址; 3. 如果数据包是多播或广播包,则要在同一个网段中除了接收端口外的其他所有端口发送这个数据包,如果上层协议栈对多播包感兴趣,则需要把数据包提交给上层协议栈; 4. 如果数据包的目的MAC地址不能再CAM表中找到,则要在同一个网段中除了接收端口外的其他所有端口发送这个数据包; 5. 如果能够在CAM表中查询到目的MAC地址,则在特定的端口上
localtime()函数:获取当前时间和日期并转换为本地时间
内核代码能一直获取一个当前时间的表示, 通过查看 jifies 的值. 常常地, 这个值只代表从最后一次启动以来的时间, 这个事实对驱动来说无关, 因为它的生命周期受限于系统的 uptime. 如所示, 驱动可以使用 jiffies 的当前值来计算事件之间的时间间隔(例如, 在输入驱动中从单击中区分双击或者计算超时). 简单地讲, 查看 jiffies 几乎一直是足够的, 当你需要测量时间间隔. 如果你需要对短时间流失的非常精确的测量, 处理器特定的寄存器来帮忙了( 尽管它们带来严重的移植性问
粉丝群CSS小测第1期答疑文字版
一、CSS小测第一期题目题目如下图,一个很简单也很常用的布局:左右排布的列表,左侧是标签信息,右侧是描述信息。在微信粉丝群里面发出题目后,总共收到了将近50人的回答,完整回答列表可以参见此issues:github.com/zhangxinxu/…也欢迎关注这
python爬虫:从页面下载图片以及编译错误解决。
#!/usr/bin/python import re import urllib def getHtml(url): page = urllib.urlopen(url) html = page.read() return html def getImage(html): reg = r'src="(.*?\.jpg)" title' image = re.compile(reg) imglist = re.findall(image,html) x = 0 for imgurl in im
Spring | SpringMVC
1) Spring是一个IOC(DI)和AOP容器框架。 1) Spring的优良特性 依赖注入:DI——Dependency Injection,反转控制(IOC)最经典的实现。 面向切面编程:Aspect Oriented Programming——AOP 一站式:在IOC和AOP的基础上可以整合各种企业应用的开源框架和优秀的第三方 类库(实际上Spring 自身也提供了表述层的SpringMVC和持久层的Spring JDBC)。 IOC(Inversion of Control):反转
python 文件处理(基础字符)
基于字符read & write 最基本的文件操作当然就是在文件中读写数据。这也是很容易掌握的。现在打开一个文件以进行写操作: 1. fileHandle = open ( 'test.txt', 'w' ) fileHandle = open ( 'test.txt', 'w' ) ‘w'是指文件将被写入数据,语句的其它部分很好理解。下一步就是将数据写入文件: 1. fileHandle.write ( 'This is a test.\nReally, it is.' ) fileHand
firedac连接linux的oracle
firedac连接linux的oracle 首先要下载并安装 oci for linux。OCI的版本要和ORACLE数据库的版本一致。 centos7环境下安装OCI:https://blog.csdn.net/wjb123sw99/article/details/83863234 FIREDAC指定ORACLE的驱动程序: FDPhysOracleDriverLink1.VendorLib := '/opt/oracle/instantclient_12_2/libclntsh.so';
今日推荐
周排行