col

用python来处理待打印的深色背景图片

吃可爱长大的小学妹 提交于 2020-03-05 14:59:39
为了长时间看电脑更舒服,我们的通常把代码编辑器、电路图、仿真波形等工具设置成深色背景。但写论文时,如果用截图的方式来插入图片,打印后会大面积的黑色,会严重影响论文的排版效果。今天介绍用python来处理这些截图,让论文看起来更舒服。 假设我们要处理的图像如下: 为bmp类新增初始化函数 在python里,并不像C语言一样可以简单重载__init__函数。所以我们只能为__init__函数增加可变参数来实现。另一种实现方式是使用@classmethod来装饰,如下create_header_by_info(cls)。这个函数的第一个参数只能是class,返回值是class bmp的对象。 class bmp: def __init__(self, w=1080, h=1920): self.w = w self.h = h @classmethod def create_header_by_info(cls, tp): cls.tag = tp[0] cls.fileSize = tp[1] cls.rgbOffset = tp[4] cls.infoSize = tp[5] cls.pane = tp[8] cls.color = tp[9] cls.compress = tp[10] cls.dataSize = tp[11] return cls(tp[6], tp[7])

hdu1814 Peaceful Commission

狂风中的少年 提交于 2020-03-05 06:18:24
hdu1814 Peaceful Commission 题意:2-sat裸题,打印字典序最小的 我写了三个 染色做法,正解 scc做法,不管字典序 scc做法,错误的字典序贪心 #include <iostream> #include <cstdio> #include <cstring> #include <algorithm> #include <queue> using namespace std; const int N = 2e4+5, M = 1e5+5; inline int read() { int x = 0, f = 1; char c = getchar(); while(c<'0' || c>'9') {if(c=='-') f=-1; c=getchar();} while(c>='0' && c<='9') {x=x*10+c-'0'; c=getchar();} return x * f; } int n, m; struct edge {int v, ne;} e[M]; int cnt, h[N]; inline void ins(int u, int v) { e[++cnt] = (edge) {v, h[u]}; h[u] = cnt; } inline int id(int x) {return ((x-1)^1)+1;} int col

Codeforces 781A:Andryusha and Colored Balloons(DFS染色)

▼魔方 西西 提交于 2020-03-03 21:38:24
http://codeforces.com/contest/782/problem/C 题意:给一棵树染最少的颜色,使得相邻距离为2的点都是不同的颜色,问最少是多少种颜色并输出每个点的颜色。 思路:比赛的时候没想到是找度最大的一个点并+1就是总颜色数,一直想怎么构造。 最后的总颜色数是度最大的一个点的度数+1。因为我们选的这个点到儿子的距离为1,因此其某一个儿子到另一个儿子的距离为2,就是这些儿子都要染成不同的颜色,+1是因为自己本身也要是不同的颜色。 然后确定了总颜色数,就可以DFS染色了。 参数记录一个上上个结点和上个结点染了什么颜色,只要儿子染成不同的就可以了,注意儿子之间颜色也要不同。 1 #include <bits/stdc++.h> 2 using namespace std; 3 #define N 200010 4 struct Edge { 5 int v, nxt; 6 } edge[N*2]; 7 int head[N], tot, col[N], deg[N], ans; 8 9 void Add(int u, int v) { 10 edge[tot] = (Edge) {v, head[u]}; head[u] = tot++; 11 edge[tot] = (Edge) {u, head[v]}; head[v] = tot++; 12 } 13

树上游戏(树上乱搞)

旧巷老猫 提交于 2020-03-03 09:40:02
树上游戏(luogu) Solution 对于每种颜色 i ,计算出以每个点为起点的包含它的路径条数,每个点的答案为各种颜色加起来 删去颜色为 i 的所有点,树变成森林 每颗树内点间的路径不包含颜色 i ,不能对包含颜色 i 的路径条数产生贡献 不同树间的点,路径上必然有颜色 i 即颜色不为 i 的点,以它为起点的包含颜色 i 的路径条数为——n-删去颜色为 i 的所有点后它所在树的节点数 颜色为 i 的点, 以它为起点的包含颜色 i 的路径条数为 n 第一次遍历,求出每个点去掉父亲颜色后所在树的节点数(该数以这个点为根) 特殊处理原树的根(它没有父亲,可看做去掉任何颜色后树的根) 第二次遍历,差分求出答案 Code #include <cstdio> #include <cstdlib> #define ll long long using namespace std; const int N=1e5+10; int head[N],nxt[N*2],ver[N*2],tot; int si[N],tr[N],cut[N],n,col[N],u,v,d[N],cnt[N]; bool flag[N]; ll ans[N],sum; void add(int x,int y) { ver[++tot]=y,nxt[tot]=head[x],head[x]=tot; } void

IplImage 、cvMat 、Mat三者比较

半世苍凉 提交于 2020-03-02 03:42:10
IplImage, CvMat, Mat 的关系 opencv中常见的与图像操作有关的数据容器有Mat,cvMat和IplImage,这三种类型都可以代表和显示图像,但是,Mat类型侧重于计算,数学性较高,openCV对Mat类型的计算也进行了优化。而CvMat和IplImage类型更侧重于“图像”,opencv对其中的图像操作(缩放、单通道提取、图像阈值操作等)进行了优化。在opencv2.0之前,opencv是完全用C实现的,但是,IplImage类型与CvMat类型的关系类似于面向对象中的继承关系。实际上,CvMat之上还有一个更抽象的基类----CvArr,这在源代码中会常见。 1. IplImage opencv中的图像信息头,该结构体定义: typedef struct _IplImage { int nSize; /* IplImage大小 */ int ID; /* 版本 (=0)*/ int nChannels; /* 大多数OPENCV函数支持1,2,3 或 4 个通道 */ int alphaChannel; /* 被OpenCV忽略 */ int depth; /* 像素的位深度: IPL_DEPTH_8U, IPL_DEPTH_8S, IPL_DEPTH_16U, IPL_DEPTH_16S, IPL_DEPTH_32S, IPL_DEPTH_32F

python模块 XlsxWriter

最后都变了- 提交于 2020-03-02 02:08:58
介绍 Xlsx是python用来构造xlsx文件的模块,可以向excel2007+中写text,numbers,formulas 公式以及hyperlinks超链接。 可以完成xlsx文件的自动化构造,包括: 合并单元格,制作excel图表等功能: xlsxWriter支持多种excle功能;与excel完美兼容;写大文件,速度快且只占用很小的内存空间 不支持读或者改现有的excel文件 安装 pip install XlsxWriter 文档 https://xlsxwriter.readthedocs.io/contents.html 使用 import xlsxwriter # Create a workbook and add a worksheet. workbook = xlsxwriter.Workbook('Expenses02.xlsx') worksheet = workbook.add_worksheet() # Add a bold format to use to highlight cells. bold = workbook.add_format({'bold': True}) # Add a number format for cells with money. money = workbook.add_format({'num_format': '

leetcode-----N皇后问题

大城市里の小女人 提交于 2020-03-01 20:55:46
皇后可以直走,横走,斜着走。 回溯法: 回溯法的意思是,在某个位置放下皇后后,发现并不符合规则,然后就把这个皇后拿起来重新放,可以理解为悔棋。 在解皇后问题时,我们需要知道的是,西洋棋牌的主对角线(hill_diagonals)和次对角线(dale_diagonals)的一个关系: 主对角线:行序号+列序号 = 常数 次对角线:行序号-列序号 = 常数 class Solution: def solveNQueens(self, n: int): def could_place(row, col): return not (cols[col] + hill_diagonals[row - col] + dale_diagonals[row + col]) def place_queen(row, col): queens.add((row, col)) cols[col] = 1 hill_diagonals[row - col] = 1 dale_diagonals[row + col] = 1 def remove_queen(row, col): queens.remove((row, col)) cols[col] = 0 hill_diagonals[row - col] = 0 dale_diagonals[row + col] = 0 def add_solution

CodeForces - 1118F1 Tree Cutting (Easy Version)(DFS)

妖精的绣舞 提交于 2020-03-01 08:50:35
💇‍♀️ 💇‍♀️ 💇‍♀️ //目的:找到一个这样的结点,他的子树包含所有的蓝色/红色,且不包含另一种颜色 //所以记录下每个节点的子树的蓝色,红蓝结点分别有多少 //然后枚举每条边检验 int n , ans ; int a , b ; //一共有多少蓝/红色 int tag [ MAXN ] ; //某点的颜色 int col [ 3 ] [ MAXN ] ; //某点的子树的颜色个数 int dep [ MAXN ] ; //深度 vector < int > mp [ MAXN ] ; void dfs ( int x , int fx ) { ++ col [ tag [ x ] ] [ x ] ; if ( dep [ x ] == 0 ) dep [ x ] = dep [ fx ] + 1 ; for ( auto v : mp [ x ] ) { if ( v != fx ) { dfs ( v , x ) ; col [ 2 ] [ x ] + = col [ 2 ] [ v ] ; col [ 1 ] [ x ] + = col [ 1 ] [ v ] ; } } } void solve ( ) { int n ; cin >> n ; rpp ( i , n ) { cin >> tag [ i ] ; if ( tag [ i ] == 1 ) ++

python画饼图的多种方式

孤者浪人 提交于 2020-03-01 06:05:16
使用matplotlib画图 导入模块 import matplotlib . pyplot as plt % matplotlib inline plt . pie ( pie_fig [ 'count' ] , labels = pie_fig [ 'type' ] , explode = [ 0.1 , 0 ] , data = pie_fig , shadow = True , autopct = '%1.1f%%' ) plt . title ( 'Netflix_show TV/Moive percentage' ) plt . axis ( 'equal' ) plt . show ( ) 传入数据pie_fig为dataframe格式 图形结果: 使用pyecharts 模块导入 from pyecharts import options as opts from pyecharts . charts import Pie pie = Pie ( ) pie . add ( 'Netflix_show TV/Moive percentage' , [ list ( z ) for z in zip ( pie_fig [ 'type' ] , pie_fig [ 'count' ] ) ] ) pie . set_global_opts ( title_opts =

leetcode-48--旋转图像

天涯浪子 提交于 2020-02-28 14:31:21
题目描述:   给定一个 n × n 的二维矩阵表示一个图像,将图像顺时针旋转 90 度。 说明:   你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。 示例 1: 给定 matrix = [ [1,2,3], [4,5,6], [7,8,9] ], 原地旋转输入矩阵,使其变为: [ [7,4,1], [8,5,2], [9,6,3] ] 示例 2: 给定 matrix = [ [ 5, 1, 9,11], [ 2, 4, 8,10], [13, 3, 6, 7], [15,14,12,16] ], 原地旋转输入矩阵,使其变为: [ [15,13, 2, 5], [14, 3, 4, 1], [12, 6, 8, 9], [16, 7,10,11] ] 解题思路1:   按照以下旋转方式,先是淡黄色块,然后是浅蓝色块,依次替换位置 代码1: def rotate ( matrix ) : if matrix == [ ] or matrix [ 0 ] == [ ] : return 0 n = len ( matrix ) def get_rotate_xy ( i , j ) : return ( j , n - i - 1 ) for i in range ( n // 2 ) : for j in range ( i , n -