自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(50)
  • 收藏
  • 关注

原创 微软最新面试题11-27

一面leetcode 297 准hard二面leetcode 1358 准hard三面leetcode 4 hard三轮全是hard,无提示撕出。三面hard只20分钟,撕出最优解,依然被吐槽,第二天收到感谢信。虽然败了,但我是败的一点都不服的!简介暑假8月10号网申系统直接海投的微软苏州STCA SDE,至今已经过去了三个多月,经历了完整的校招流程,在此分享一下我的微软笔试面试timeline以及面经吧。笔试 ...

2020-11-27 23:12:33 394

原创 重要的基础算法—字符串前缀哈希法

#include <iostream>using namespace std;typedef unsigned long long ULL;const int N = 100010, P = 131;char str[N];ULL h[N], p[N];ULL get(int l, int r){ return h[r] - h[l-1]*p[r-l+1];}int main(){ int n,m; scanf("%d ...

2020-11-26 19:31:16 219

原创 微软最新面试问题11-26

平行面(10.21)自我介绍+项目 过了一个月实在是记不太清具体的算法题了,大概就记得有一个格雷码的算法题,当时用Stack写了一下平行面(11.19)第一次平行面挂了之后被捞起来(感谢微软爸爸),约了第二次平行面仍然是自我介绍+项目,不过简历被第一位面试官吐槽了一下 算法题1:单向链表里面判定有没有环 算法题2:一个matrix(m行n列),从[0,0]开始,只能向右或者向下走,求走到[m-1, n-1]有多少种方法。一开始用dp写了个空间复杂度为O(mn)的,然后让优化到O(n),最

2020-11-26 18:04:27 355

原创 2020年全国卷二物理压轴大题

这题是物理大题中最难的一道题,和摩擦力相关的问题,一定要清晰分析物理过程,不能跳步

2020-11-24 13:46:46 1117

原创 2020年全国卷一物理试题

全国一卷选择题很容易BAB电场在AC方向

2020-11-24 13:13:49 217

原创 2020年高考物理全国卷三解答

圆环都向右运动,使得磁通量减小。动量守恒,能量守恒速算,选A公式含义定性,快速分析需要计算三角函数特殊角度,使用排除验证法。排除45,60,70。下标是电荷数,上标是质量数,C正确,D错误,A正确,X的电荷数比Y的电荷数多1,B错误。A. DB,C...

2020-11-24 12:11:00 1098

原创 pybinding+Wannier90拟合三代模型

先用Wannier90拟合输出hr.dat文件,人工读取hr.dat文件中的hopping参数,通过pybinding算对应的能带色散高度依赖于参数,需要刻画出特征还需要进一步想办法import pybinding as pbimport numpy as npimport matplotlib.pyplot as pltfrom math import sqrt, pipb.pltutils.use_style()d = 1 # [nm] unit cell lengtht

2020-11-22 17:11:38 891

原创 Wannier90拟合三带模型数据

on_site 0 0 0 1 1 -0.699734 -0.000000 0 0 0 2 1 -0.027311 -0.000356 0 0 0 3 1 -0.027320 0.000160 0 0 0 1 2 -0.027311 0.000356 0 0 0 2 2 -0.699762 -0.00...

2020-11-22 16:28:05 578

原创 微软最新面试题11-20

11.20 微软面试许愿微软三面!!!第一面:给出一串字符串例如(A2B3)2 = A4B6我晕了,最后写出来发现得是stack,这题目好简单,我一写算法题就蒙第二面:二维数组找递增target要求bug free还有quick sort10月份已经经历过三轮面试了,11月份又被捞起来了,我越做算法题头越晕,不能再面试了,求求这次微软的给我个offer吧!切拜,会好好学习的!加油加油...

2020-11-20 22:30:28 246 1

原创 微软面试题11-20

害 振作一番 发个面经 当作回馈那些给予我面经的朋友们~两面连着。一:1.二叉树后序遍历2.字符串的最长重复子串二:system design跟面试官真的是沟通了巨久 他真的很温柔 一直在跟我解释以及纠正终于在最后时刻理解了题目意思(我真的服了自己 让实现队列 我上去就声明了一个队列 。。。反正写了一半吧,还有一个扩容的思路没写到。为了微软也算努力挺久了 牛客里 地里 来回穿插看面经 但是自己表现真的不够好 害 ????~微软面试官真的真的很好 drea...

2020-11-20 01:29:34 177

原创 Leetcode 1497. 检查数组对是否可以被 k 整除

ToDo

2020-11-20 00:21:01 135

原创 微软最新面试题11-19

附上微软AA面,虚的不行:聊了ML相关的项目,问得很细(都是简历相关的),但组里似乎用NLP做的比较多,也详细问了一下transformer model,不过我知识储备还是有欠缺。笼统的behavior question没有问。然后有系统设计,如何从一个非常大的文档里设计功能找到特定字符串,还有1TB的内容怎么用1GB的内存排序。之后做了类似2sum,3sum的题,时间到一个小时结束了,但代码还没有完全写完,思路都说完了,不知道影响有多大QAQ所以现在很盼望有个回复,希望面的早的小.

2020-11-19 15:44:20 444

原创 微软最新面试题11-19

话不多说, 直接上timeline。8月末微软官网海投STCA-苏州。9月18日收到笔试链接。10月12日告知笔试通过,开始预约面试。10月30日 一面只有一面是个听起来不温柔但是很好的小姐姐上来先自我介绍, 然后问了项目,项目问的比较细。我做的是分布式系统,于是问了我单点登录怎么实现。然后直接做题:第一题, 给定两个已排序数组,返回一个排序数组。(力扣原题,一点没变)第二题,树中序遍历。开始用了dfs一下写完了,要求我不用递归重新写。(用栈,我太久没用栈遍历过.

2020-11-19 15:34:52 278

原创 科研情况11-19

结论:1. 先从实验的费米面图定性确定nesting波矢, 从定性上判断nesting可能性从实验费米面图,确定CDW波矢。如果定性上2*1存在nesting波矢,想办法调出来,如果不存在,那么

2020-11-19 01:30:19 168

原创 Leetcode 518. 零钱兑换 II (完全背包求方案数优化)

class Solution {public: int change(int amount, vector<int>& coins) { // dp[i][j] 表示前i个硬币,凑成金额j的方案数 // dp[i][j] = dp[i-1][j] + dp[i-1][j-coins[i]] + dp[i-1][j-2*coins[i]] + ... + dp[i-1][j-k*coins[i]] // dp[i][j-coi...

2020-11-16 15:24:36 120

原创 完全背包求最大价值的思路以及优化详解

有NN种物品和一个容量是VV的背包,每种物品都有无限件可用。第ii种物品的体积是vivi,价值是wiwi。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出最大价值。输入格式第一行两个整数,N,VN,V,用空格隔开,分别表示物品种数和背包容积。接下来有NN行,每行两个整数vi,wivi,wi,用空格隔开,分别表示第ii种物品的体积和价值。输出格式输出一个整数,表示最大价值。数据范围0<N,V≤10000<...

2020-11-16 14:24:01 465

原创 标准01背包求最大价值模板以及空间优化

有NN件物品和一个容量是VV的背包。每件物品只能使用一次。第ii件物品的体积是vivi,价值是wiwi。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出最大价值。输入格式第一行两个整数,N,VN,V,用空格隔开,分别表示物品数量和背包容积。接下来有NN行,每行两个整数vi,wivi,wi,用空格隔开,分别表示第ii件物品的体积和价值。输出格式输出一个整数,表示最大价值。数据范围0<N,V≤10000<N...

2020-11-15 23:45:10 211

原创 Linux C/C++ 实践基础

1. 在Linux上直接使用vim或者remote上去开发。2. 熟悉gcc,g++, gdb, makefile cmake等工具进行编译。(多文件编译练习)动态库,静态库的概念。3. gdb调试工具4. 工程开发。

2020-11-14 17:26:14 96

原创 微软最新面经11-14

回馈牛客,也为自己祈祷offer一面(10.29)一面讲了一下项目,然后主要是做题,题目不是非常难:1. 经过包装的top k问题。给出了快速选择和堆排两种方法,问了时间复杂度和空间复杂度,要求实现堆排序(自己实现堆)2. 做完第一题,面试官看时间还够,就出了一道合并二叉树的题目( leetcode 617),不过不是取两个节点和,而是取两个节点的最大值二面(10.30)二面开始同样 讲了一下项目,然后就做了一道题目, 剑指 Offer 51. 数组中的逆序对 ,问...

2020-11-14 01:16:35 237

原创 科研进展11-13

直接第一性原理计算应该不准确,需要拟合5带模型直接从第一性能带计算磁化率,结果接近q1 4*4的,

2020-11-14 00:28:39 195

原创 Wannier 单带拟合

0 0 0 1 1 -1.342598 0.000000 0 1 0 1 1 -0.034210 0.000000 0 -1 0 1 1 -0.034210 -0.000000 1 0 0 1 1 -0.034210 -0.000000 1 1 0 1 1 -0.034210 -0.000000...

2020-11-13 21:35:02 411

原创 第一性原理计算二维/三维电子磁化率方法

1. 用第一性原理完成标准的结构优化,静态自洽计算2. 可以先计算出沿着高对称线的能带。3. 在布里渊区均匀打点这里有一个技巧是直接使用到格式分数坐标,然后沿着倒格矢等分就行。这样便于后面的磁化率计算,Python脚本如下:import numpy as npimport matplotlib.pyplot as pltG1 = np.array([0 ,1]) # Reciprocal Lattice 1G2 = np.array([1, 0]) .

2020-11-13 16:57:48 1143 1

原创 费米面和极化率(加上六角形边框,点太少了)

2020-11-12 21:54:30 335

原创 科研进展11-12

晶格坐标和原子轨道的对称性坐标不一样。1. 直接从第一性原理输出费米面附近的两条能带,直接计算磁化率。优点:直接了当。缺点:点比较少,目前算的点45*452. Tight-binding拟合目前只能拟合三带,p电子还要单独拟合优点:d电子点比较多。困难:p电子也要拟合。...

2020-11-12 02:02:59 101

原创 人工读取Wannier输出文件生成Tight-binding模型

这里拟合有些技巧,或者用软件包提取处理。on_site 部分 0 0 0 1 1 -0.699734 -0.000000 0 0 0 2 1 -0.027311 -0.000356 0 0 0 3 1 -0.027320 0.000160 0 0 0 1 2 -0.027311 0.000356 0 0 0 2 ...

2020-11-11 17:51:34 957 1

原创 第一性原理输出二维能带计算极化率

左边能带图,右边磁化率,大概趋势是能看出来,但是点太少,45*45

2020-11-11 16:25:31 415

原创 微软最新面经11-11

今天面完了最后一面,写个面经增加人品~一面 10.21自我介绍后面试官给了一题,在本地ide写的这题别人的面经里出现过,大概是中文数字转阿拉伯数字,例如一千一百万零一百 -> 11000100只写了一题,然后面试官问了不了解进程线程 (不太了解,只知道基本概念二面 10.21二面上来就写题,在面试官给的链接里写的,不能断点调试,只能print出来看看1. 字符串加法,两个字符形式的数字相加,先写了个整数版本的,然后写了个小数版本的2. 生成一个元素被...

2020-11-11 01:59:23 266

原创 利用Vaspkit计算二维材料的三维能带

利用vaspkit可以在均匀取点的情况下,计算三维能带,这样可以与前面的计算极化率的程序相配合,这里先介绍这一功能。首先,在自洽计算阶段和普通的能带计算相同,然后做非自洽生成数据的时候,一般的做法line-mode,沿着某一条线计算。要算三维的能带,就需要在平面内均匀取点,这里用vaspkit 231功能生成。提取对应的能带,可以用vaspkit 232功能生成, 然后用以下matlab程序处理数据。clcclear kx_mesh=load('KX.grd'); k.

2020-11-10 23:43:28 5852 1

原创 关于第一性计算电子磁化率的技巧

前面我们提到,在计算电子磁化率的时候需要在布里渊区均匀打点,实际上在第一性原理生成KPOINTS文件时,这点是可以做到的。不需要我们在手动生成。详细见这个Vaspwiki的介绍https://www.vasp.at/wiki/index.php/KPOINTS#Generalized_regular_grids因此现在我们需要知道的是,生成的K点和分数坐标的表达式关系,有了这个关系,我们就可以直接计算出E_q+k,...

2020-11-10 14:07:06 796

原创 电子的静态极化率以及RPA近似

2020-11-10 00:47:01 587

原创 关于计算电子磁化率以及RPA的总结

核心就是这个公式求和对整个布里渊区进行。要求只能计算一次能谱(因为能谱可能由第一性原理软件读出来)目前想到的方法是均匀划分网格,这样给定k和q以后,k+q就一定是算过的。对于正方格子,很简单。对于六角格子,平移成平行四边形。二维对整个布里渊区计算,时间复杂度O(N^4), 个人电脑C++能接受的大小是200*200。(优点对称性体现的很清楚,缺点是计算速度太慢,关键点看起来不容易)沿着高对称线计算q,时间复杂度O(N^3), 个人电脑C++ 400*400,大约需要20s,可以接受。(.

2020-11-10 00:38:53 1038 1

原创 二维六角晶格体系极化率RPA的计算结果总结

六角形布里渊区不方便进行直接计算,所以需要进行平移操作,将布里渊区平移为如下平行四边形,平移后的均匀取样方法见以前的文章。能量可以由紧束缚模型计算,也可以从第一性原理计算中读取,然后就可以在平移之后的布里渊区,均匀的画出能带和费米面,Matlib代码如下:Nx = 200;Ny = 200;a = 4.18879028;b1 = a*[0 ,-1.7321];b2 = a*[1.5,-0.8660];e1 = b1/Nx;e2 = b2/Ny;KPOS = zeros(Nx,N

2020-11-09 23:56:38 1336 1

原创 平行四边形区域均匀取样方法

对于六角形布里渊区,在计算的时候,通常会将他平移成平行四边形,如下所示一般的,给定平行四边形的两条矢量G1,G2,我们要在平行四边形内生成均匀的点。采样如下算法,这其实就是利用平面向量斜坐标离散基矢构造出来的import numpy as npimport matplotlib.pyplot as pltG1 = np.array([0 ,-1.7321]) # Reciprocal Lattice 1G2 = np.array([1.5,-0.8660])

2020-11-09 20:18:35 841

原创 计算极化率方案分析

1. 方案一直接从第一性原理读取能量计算。优点:不调参数时是准确的。缺点:能调的参数就一个费米面,可能得不到想要的结果。难点:布里渊区均匀采样读取数据2. 方案二拟合计算优点:可调参数比较多。缺点:可能调不准难度:调参数,拟合能带...

2020-11-09 13:10:47 534

原创 计算极化率方案

1. 直接用模型Tight-binding,其中d轨道用三带Tight-binding, p轨道用单带Tight-bind其中p轨道用三角格子单带模型拟合,由于极化率只有费米面附近的电子有贡献,因此这个近似是可行的,可以调的参数就是μ和td轨道已经有三带的tight-binding,但是这个参数比较多。比较难调。所以最好给出一个比较简单的单带,或者...

2020-11-08 22:15:55 968

原创 无相互作用极化率计算——沿着高对称线计算

求和需要对整个布里渊区求和(是否能通过对称性简化,这里暂时不考虑这个问题)不需要将整个布里渊区的k点都计算出来,只需要计算沿着高对称线的k点,对于二维体系,此时的时间复杂度降低为O(n^3) , 现在对于200*200*200的体系C++能很快的算出看来。这里取点还是用的均匀取点的技巧。#include <iostream>#include <cmath>#include <vector>#include <fstream>#incl..

2020-11-08 18:03:44 239

原创 笔试题 Leetcode680最多删除一个字符,判断剩下字符是否能构成回文

ToDO

2020-11-08 15:59:52 188

原创 在谈无相互作用极化率

用C++算200*200的格点,O(N^4)的时间复杂度,C++大概需要160秒的时间,实际用时954.435s,因为存在少量复数的计算。#include <iostream>#include <cmath>#include <vector>#include <fstream>#include <iomanip>#include <complex>#include <ctime>using namespa

2020-11-08 14:22:55 139

原创 关于无相互作用极化率的计算

首先,我们需要在布里渊区均匀采样,生成一系列均匀的点,由于均匀的封闭性,给定k和q后,k+q就可以由已经存在的点表示出来。需要注意的是,我们需要对超出范围的k+q的点做平移(用编号取模就行)之后,就可以完成极化率的计算。相当于这里全部用了离散坐标。...

2020-11-08 01:56:49 592

原创 matlib科学计算平均场能带技巧

1. 注意使用向量化编程技巧,使得代码中尽可能少用循环,而用向量化计算实现。2. 注意同时在主计算程序中,少用逻辑控制,这样能提高计算效率,后期也能改成GPU计算

2020-11-06 15:51:56 296

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除