技术沉淀
1.怎样批量激活win 7 里的office 2010:
以管理员的身份运行:%installdir%\%Program Files%\Common Files\Microsoft Shared\OfficeSoftwareProtectionPlatform\ ospprearm.exe。
2.Binding是WPF里数据驱动的核心,在编程过程中,将类的属性值绑定到UI是最常见的应用。下面以类的属性绑定到Textbox的Text属性为例,分别采用依赖属性和实现INotifyPropertyChaned两种方法。
使用依赖属性:
XAML:
Text="{Binding Path = ResourceFilePath,ElementName = mainWindow}"
C#:
public string ResourceFilePath
{
get { return (string)GetValue(ResourceFilePathProperty); }
set { SetValue(ResourceFilePathProperty, value); }
}
// Using a DependencyProperty as the backing store for ResourceFilePath. This enables animation, styling, binding, etc...
public static readonly DependencyProperty ResourceFilePathProperty =
DependencyProperty.Register("ResourceFilePath", typeof(string), typeof(MainWindow), new PropertyMetadata(null));
实现INotifyPropertyChanged:
XAML:
Text="{Binding Path = ResourceFilePath,ElementName = mainWindow}"
C#:
public class BindingDemo : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
private void NotifyPropertyChanged([CallerMemberName] String propertyName = "")
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
public string CustomerName
{
get
{
return this.customerNameValue;
}
set
{
if (value != this.customerNameValue)
{
this.customerNameValue = value;
NotifyPropertyChanged();
}
}
}
3. XAML里的转义字符
< <
> >
& &
“ "
4.数据算法
DFS(Depth-First-Search)深度优先搜索算法,是搜索算法的一种。是一种在开发爬虫早期使用较多的方法。它的目的是要达到被搜索结构的叶结点(即那些不包含任何超链接的HTML文件) 。
Web 要素服务(WFS):支持对地理要素的插入,更新,删除,检索和发现服务。该服务根据HTTP客户请求返回GML(Geography Markup Language、地理标识语言)数据。WFS对应于常见桌面程序中的条件查询功能,WFS通过OGC Filter构造查询条件,支持基于空间几何关系的查询,基于属性域的查询,当然还包括基于空间关系和属性域的共同查询。
分布式计算是一门计算机科学,它研究如何把一个需要非常巨大的计算能力才能解决的问题分成许多小的部分,然后把这些部分分配给许多计算机进行处理,最后把这些计算结果综合起来得到最终的结果。
pascal 背包问题 f[j]:=max(f[j],f[j-c[i]]+w[i]);
首先要明白二维的写法,即f[i,v]表示前i件物品恰放入一个容量为v的背包可以获得的最大价值。则其状态转移方程便是:f[i,v]=max{f[i-1,v],f[i-1,v-c[i]]+w[i]}。
这个应该很好理解吧,
然后考虑上面讲的基本思路如何实现:
肯定是有一个主循环i=1..N,每次算出来二维数组f[i,0..V]的所有值。
那么,如果只用一个数组f[0..V],能不能保证第i次循环结束后f[v]中表示的就是我们定义的状态f[i,v]呢?
f[i,v]是由f[i-1,v]和f[i-1,v-c[i]]两个子问题递推而来,能否保证在推f[i][v]时(也即在第i次主循环中推f[v]时)能够得到f[i-1,v]和f[i-1,v-c[i]]的值呢?事实上,这要求在每次主循环中我们以v=V..0的顺序推f[v],这样才能保证推f[v]时f[v-c[i]]保存的是状态f[i-1][v-c[i]]的值。伪代码如下:
for i=1..N
for v=V..0
f[v]=max{f[v],f[v-c[i]]+w[i]};
其中的f[v]=max{f[v],f[v-c[i]]}一句恰就相当于我们的转移方程f[i][v]=max{f[i-1][v],f[i-1][v-c[i]]},因为现在的f[v-c[i]]就相当于原来的f[i-1][v-c[i]]。如果将v的循环顺序从上面的逆序改成顺序的话,那么则成了f[i][v]由f[i][v-c[i]]推知,与本题意不符,但它却是另一个重要的背包问题P02最简捷的解决方案,故学习只用一维数组解01背包问题是十分必要的。
背包问题引用:http://wenwen.soso.com/z/q281589001.htm