nx

NX二次开发-UFUN导入表达式UF_MODL_import_exp

坚强是说给别人听的谎言 提交于 2019-12-04 09:26:41
最近在做表达式创建,发现UFUN的创建表达式函数UF_MODL_create_exp,UF_MODL_create_exp_tag没有办法创建字符串类型的表达式,例如AA="BB"。 后来我是用NXOPEN去做的,直接录一下,然后改改就可以了。后来请教唐工,他给我一个新的方法,用导入表达式函数UF_MODL_import_exp去实现。理论上这个方法,应该无论什么类型的表达式都可以导入进来。 1 NX11+VS2013 2 3 #include <uf.h> 4 #include <uf_modl.h> 5 6 UF_initialize(); 7 8 UF_MODL_import_exp("D:\\123.exp", 1); 9 10 UF_terminate(); 11 12 Caesar卢尚宇 13 2019年11月13日 来源: https://www.cnblogs.com/nxopen2018/p/11853239.html

关于KMP的一点思考

删除回忆录丶 提交于 2019-12-04 08:16:43
关于KMP的一点思考 KMP的 \(next\) 数组的性质很精妙,有必要开一个坑学习一下 Part 1 啥是next \(next[i]\) 表示对于 \(pre_i\) 这个字符串,这个抠出来的字符串本身后缀和前缀相等的最长长度。是一个自变量 只和这个子串有关的函数 。这点很重要 由于保证了是最长长度,这个数有一些优良的性质,常常在关于一个串的循环表示或者周期表示中发挥作用。 注意到这个 \(next[i]\) 虽然代表是这个最长长度,但是值得注意的是,由于字符串从1开始编号,所以这个值也是那个前缀的下标。 Part2 如何求next 边界条件是, \(nx[1]=0\) 。考虑我们若已经求得前面 \(i-1\) 的位置的 \(nx\) 值,现在如何求 \(nx[i]\) 。 把 \(S[1\dots i-1]\) 看做一个整体,现在我们在后面加入了一个字符 \(S[i]=c\) 。 我们现在就是要在 \(pre_{nx[i-1]}\) 中截一个最大的位置 \(p\) ,使得 \(S[p+1]=c\) ,而 \(p\) 虽然是下标,但是由于从 \(1\) 开始编号那么就同时就是这个串的长度,所以 \(nx[i]=p+1\) 。为什么是在 \(pre_{nx[i-1]}\) 中找呢?因为我们要保证 \(S[i-p+1...i]=S[1,p]\) 。 所以如何找 \(p\) 呢

题解 AT1221 【水筒】

北慕城南 提交于 2019-12-04 00:37:17
题目链接 Solution 水筒 题目大意:一个 \(n \times m\) 的矩阵里有一些墙不能走,有一些建筑物,有一些地方是原野。每走过一格原野需要消耗一份水,建筑物可以将水壶补满。多次询问从一个建筑物到另一个建筑物水壶容量至少为多少。 Kruskal重构树 分析: 首先不难想到暴力,我们把所有可以相互到达的建筑物两两连边,如果我们要使得最大边权尽量小那么我们就要求最小生成树。证明考虑贪心:不断加边直到两点连通,这就是Kruskal的过程。 求树上两点间边权的最大值就是Kruskal重构树的板子题 但是如果我们暴力枚举所有建筑物无法承受,但是我们发现有些边是没有用的,我们可以考虑类似于缩点的方法。我们给每个建筑物一个颜色,然后同一颜色的点离它最近的加油站都相同 这样我们只需要枚举每个点以及和它相邻的点,如果颜色不同连边即可,这个可以在bfs的时候顺便计算,染色发现已经染过的不同色点就连边 #include <cstdio> #include <vector> #include <queue> #include <utility> #include <algorithm> using namespace std; const int maxn = 2e3 + 100,maxp = 4e5 + 100,maxdep = 25; int n,m,p,q,vis[maxn][maxn

NX二次开发-UFUN CSYS坐标系转换UF_CSYS_map_point

允我心安 提交于 2019-12-03 22:38:44
1 NX9+VS2012 2 3 #include <uf.h> 4 #include <uf_curve.h> 5 #include <uf_csys.h> 6 #include <uf_mtx.h> 7 8 9 UF_initialize(); 10 11 //创建向量方向 12 double Vec[3] = { 10.0, 23.5, 75.8 }; 13 14 //3*3矩阵,输入Z向量,得到矩阵 15 double Mtx[9]; 16 UF_MTX3_initialize_z(Vec, Mtx); 17 18 //创建矩阵 19 tag_t MatrixTag = NULL_TAG; 20 UF_CSYS_create_matrix(Mtx, &MatrixTag); 21 22 //创建临时坐标系 23 double P1[3] = { 0.0, 0.0, 0.0 };//直线起点 24 tag_t CsysTag = NULL_TAG; 25 UF_CSYS_create_temp_csys(P1, MatrixTag, &CsysTag); 26 27 //设置WCS 28 UF_CSYS_set_wcs(CsysTag); 29 30 //创建直线终点 31 double P2[3] = { P1[0], P1[1], P1[2] + 100 }; 32 33

POJ3669(BFS)

大兔子大兔子 提交于 2019-12-03 11:54:01
开始的时候犯了一个错误:重复搜索,所以一直超时(32行中漏写了d[nx][ny]==0) 之后又发现50行错写成了:maze[x][y]=t; 改正之后就AC了,卡了我很久,我太难了!!! 1 #include<cstring> 2 #include<iostream> 3 #include<queue> 4 #include<algorithm> 5 #include<cstdio> 6 7 using namespace std; 8 9 typedef pair<int,int> P; 10 const int INF=100000000; 11 int m; 12 int maze[800][800]; 13 int x,y; 14 int t; 15 int d[800][800]; 16 int dx[4]={1,-1,0,0}; 17 int dy[4]={0,0,-1,1}; 18 19 void bfs(){ 20 queue<P> que; 21 que.push(P(0,0)); 22 while(que.size()){ 23 x=que.front().first; 24 y=que.front().second; 25 que.pop(); 26 if(maze[x][y]==INF){ 27 printf("%d\n",d[x][y]); return

NOIP2018 D2T3 保卫王国

懵懂的女人 提交于 2019-12-03 11:21:55
学习自: @秦淮岸 Force 如果没有限制条件,那么这道题就跟战略游戏 \(or\) 没有上司的舞会是一样的,只需 \(dp\) 一次就够了,所以很容易想到一个 \(44pts\) 的暴力:对于每次询问,都跑一遍 \(dp\) ,其中让 \(a, b\) 两个点强制转移(放/放)即可。 Thoughts 无解情况 显然,一般来说都是有解的,除非: 命令冲突,即 \(a = b\) ,且 \(x \not= y\) \((a, b)\) 有一条边,即存在父子关系,而两个都不能放,即 \(x = 0 \& y = 0\) 分部分 发现若用暴力,很多地方的 \(dp\) 显然都是相同的。 这道题核心是: 相邻两个点上必须有一个点有守卫 那么我们考虑把每次询问,将整张图分成若干个 好预处理 的部分,每个部分 分开处理 ,让每个部分内部符合条件,让 每个部分交界处满足条件 。因为每个部分互不干扰,所以可以相对取 \(min\) 最优解。 考虑简单的情况, \((a, b)\) 在一条链上: PS: \((a, b)\) 是对称的,如果 \(a\) 在底下咱们 \(swap\) 一下就行了 那么如果 \((a, b)\) 不在一条链上,我们可以把它看做两条链: \(a\) 到 \(lca\) \(lca\) 到 \(b\) 具体情况如下图 所以,一切 \((a, b)\)

How do I write/create a GeoTIFF RGB image file in python?

匿名 (未验证) 提交于 2019-12-03 08:52:47
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试): 问题: I have 5 numpy arrays of shape nx, ny lons.shape = (nx,ny) lats.shape = (nx,ny) reds.shape = (nx,ny) greens.shape = (nx,ny) blues.shape = (nx,ny) My question is how do I write this data to a geotiff? I ultimately want to plot the image using basemap. Here is the code I have so far, however I get a huge GeoTIFF file (~500MB) and it comes up blank (just a black image). Also note that nx, ny = 8120, 5416. from osgeo import gdal from osgeo import osr import numpy as np import h5py import os os.environ['GDAL_DATA'] = "/Users/andyprata/Library

Flip images at 30 degrees?

匿名 (未验证) 提交于 2019-12-03 01:27:01
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试): 问题: In canvas I know that I can flip images horizontally and vertically by doing this: vc.scale(-1, -1) But is there some way to flip an image along a 30 degree symmetry line? 回答1: Yes, you can accomplish this using the rotate() method of canvas : var ctx = document.getElementById("myCanvas").getContext("2d"); var img = new Image(); img.src = "http://photos.the-scientist.com/articleImages/48000/48607-1-t.jpg"; img.onload = function() { ctx.rotate(30 * Math.PI / 180); ctx.translate(ctx.canvas.width / 2, ctx.canvas.height / 2); ctx.scale(1, -1);

图片插值

匿名 (未验证) 提交于 2019-12-03 00:40:02
实现部分图片插值算法(最近邻,双线性,双立方) #include <iostream> #include <cmath> #include<highgui.h> #include <opencv2/core/mat.hpp> #include<opencv2/highgui/highgui.hpp> #include <opencv2/core/core.hpp> #include <opencv2/imgproc.hpp> struct MyMat { u_char *data; int w, h, c; MyMat(){} MyMat(cv::Mat &A){ w = A.cols, h = A.rows, c = A.channels(); data = (u_char *) malloc (w * h * c * sizeof (u_char)); memcpy (data, A.data, w * h * c * sizeof (u_char)); } cv::Mat to_cvMat(){ cv::Mat A(h, w, CV_8UC3, cv::Scalar( 0 , 0 , 0 )); memcpy (A.data, data, w * h * c * sizeof (u_char)); return A; } }; double INTER_CUBIC_Fun(

codeforces 1000F One Occurrence

匿名 (未验证) 提交于 2019-12-03 00:38:01
codeforces 1000F One Occurrence #include<bits/stdc++.h> using namespace std; #define fi first #define se second #define mp make_pair #define pb push_back #define rep(i, a, b) for(int i=(a); i<(b); i++) #define sz(a) (int)a.size() #define de(a) cout << #a << " = " << a << endl #define dd(a) cout << #a << " = " << a << " " #define all(a) a.begin(), a.end() #define endl " \ n" typedef long long ll; typedef pair< int , int > pii; typedef vector< int > vi; //--- const int N = 500050 ; int n, m; int a[N], ans[N], nx[N], vis[N]; bool in[N]; vector<pii> q[N]; struct Seg { #define ls (rt<<1) #define rs