摘要:
需求:有基类B,然后有三个子类CA,CB,CC。需要将他们关联起来。使用多态关联。起初我想的是将CA,CB,CC 分别 belongs_to B,但这样的话B就无法显式表示与子类的关联关系。通过多态关联.class BaseClass< ActiveRecord::Base belongs_to :childclass, :polymorphic => true endclass ChildClassA< ActiveRecord::Base has_one :BaseClass, :as => :childclassend class ChildClassB< 阅读全文
摘要:
helper默认是只在view中可用的,如果在controller中也要使用,要在ApplicationController中 include如果model中如果有叫做type的列的话,会触发rails的Single Table Inheritance ,放弃它吧,不好用,还是安心使用外键约束吧。给model加上self.inheritance_column = nil disable它controller中的参数变量会传到对应的view中比如:def new @user = User.newend---------------------------------new.html.erb... 阅读全文
摘要:
ls设置颜色 阅读全文
摘要:
Openfire采用MySQL数据库后的中文乱码问题:建立数据库的时候 create database openfire default character set utf8MySQL does not have proper Unicode support, which makes supporting datain non-Western languages difficult. However, the MySQL JDBC driver has a workaroundwhich can be enabled by adding?useUnicode=true&characte 阅读全文
摘要:
题目大意:给定一个矩阵,矩阵元素取值为0或1,每次操作可以交换任意两行或两列,要求对于给定矩阵给出操作次数和操作序列将主对角线(A[i][i],i=1...n)元素全部变为1,无法满足则输出-1.题意分析:首先要意识到如果有解,一定可以全部由行交换或者列交换来完成。不妨以行交换为例,行交换不改变元素的列次序,也就是说,若想A[2][2]为1,必须A[i][2](i=1..n)中有一个或者多个1.那么,如果问题有解,就变成找出一个序列,使得某一个行来满足某一列的对角线值唯一(有点绕口)。或者说,每一次调整一行的位置使得某一列上的对角线元素为1. 进一步抽象,就变成了,把指定的行号分配给指... 阅读全文
摘要:
题目大意,给定三个数,可能是等比或者等差数列,求第k项.本质就是快速幂+取模。wa了好多次,才发现是把一个^写成了&. 1 #include <cstdio> 2 #include <iostream> 3 using namespace std; 4 const long long MOD=200907; 5 long long a,b,c; 6 inline long long Qexp (long long A, int p ) 7 { 8 9 long long ans=1,tmp =A%MOD;10 while(p!=0)11 {12... 阅读全文
摘要:
题意:给定区间,每次修改一个点,查询区间的值。做法:线段树。基本上就是poj 2352 Stars的翻版。只是在建树的的过程有所变动。其他一模一样。上代码:(基本上直接复制的poj 2352) 1 #include <iostream> 2 #include <cstdio> 3 #include <vector> 4 #include <cmath> 5 #include <algorithm> 6 #include <utility> 7 #include <cstring> 8 #include < 阅读全文
摘要:
依旧感谢:http://blog.csdn.net/zxy_snow/代码几乎都是照着她的敲得。这里是她的新博客:http://www.xysay.com/题意很简单:给定坐标点(整数),让你统计这个点的左下方有多少个点(行和列的值可以相同),一个坐标至多有一个点。由于数据是有序给出的,整体按行数递增给出,行数相同时列数递增。解法:对于点(x,y),由于输入有序,只需要统计[0,x]这区间的最大值,然后对x点加1即可。选用线段树或者树状数组。 我用的是线段树。维护一个左闭右开[0,MAXX+1),节点维护很好写。维护一个最大值即可(注意建树的时候节点要+1)。 之前写线段树(其实也没几... 阅读全文
摘要:
题意:给定区间,每次对一个区间加一个值,如果区间中某个节点的值大于等于P的话,则加的值乘二做法:线段树,维护当前区间的最大值、最小值、标记值代码基本上都是照着别人的敲的。http://blog.csdn.net/zxy_snow/article/details/6919762 1 #include <iostream> 2 #include <cstdio> 3 #include <vector> 4 #include <cmath> 5 #include <algorithm> 6 #include <utility> 阅读全文
摘要:
ACM ICPC South American Regional 2008题目大意:给定一个矩阵,每个元素有一个值,每次取一个元素都会使得当前元素左右两个相邻项变为零,上下两行变为零,如图阴影部分所示,求最大能取到的值之和。解法:我竟然没有看出来是双重动规,果然太久不做动规了。当时还脑残的写了个四维的(虽然有三维的取值范围都是0,1),最后降到三维,然后wa了一次改了改之后AC了。正确的解法应该是每列dp一次,算出当前行的最优值,然后再用这个值按行dp。f[i]=max{f[i-1],f[i-2]+a[i]}空间上其实可以优化很多,dp数组只要开到3就好了,滚动一下即可。我没有滚动,直接开了两 阅读全文