A - Triangles

记忆化搜索呗。搜索以某三角形为顶的最大面积,注意边界情况。

 #include <stdio.h>
#include <cstring>
#include <cstdlib>
#include <algorithm>
#include <cmath> using namespace std;
#define lson o<<1
#define rson o<<1|1
#define max(a,b) (a)>(b)?(a):(b)
#define min(a,b) (a)<(b)?(a):(b)
#define INF 200000000 typedef long long ll;
int dp[][];
char g[][];
int main(){
int n,h,cs=;
while(scanf("%d",&n) && n){
for(int i=;i<n;i++)scanf("%s",g[i]);
memset(dp,,sizeof dp); printf("Triangle #%d\n",cs++);
if(n==){
printf("The largest triangle area is %d.\n\n",g[][]=='#'?:);
continue;
} h=;
for(int j=;j<*n-;j++)if(g[][j]!='#')dp[][j]=h=;
for(int i=;i<n;i++){
int j;
for(j=;j<*(n-i);j+=)if(g[i][j]!='#'){
int f=i-,p=j+;
while(f>=&&g[f][p]!='#'&&g[f][p+]!='#')f--,p+=;
dp[i][j]=min(+dp[i-][j],i-f);
h=max(h,dp[i][j]);
}
}
if(g[n-][]!='#'){dp[n-][]=;h=max(h,);}
for(int i=n-;i>=;i--){
int j;
for(j=;j<*(n-i)-;j+=)if(g[i][j]!='#'){
if(j<)dp[i][j]=;
else{
int f=i+,p=j-;
while(f<n && j<*(n-f)- && g[f][p]!='#' && g[f][p+]!='#')f++;
dp[i][j]=min(+dp[i+][j-],f-i);
}
h=max(h,dp[i][j]);
}
}
printf("The largest triangle area is %d.\n\n",h*h);
}
return ;
}

B - Domino Effect

基本就是最短路问题,权值为正,最后要用 t=(dis[i]+dis[j]+g[i][j])/2.0 计算边上最后一个多米诺倒下的时间。

 #include <stdio.h>
#include <cstring>
#include <cstdlib>
#include <algorithm>
#include <cmath>
#include <queue> using namespace std;
#define lson o<<1
#define rson o<<1|1
#define max(a,b) (a)>(b)?(a):(b)
#define min(a,b) (a)<(b)?(a):(b)
#define INF 20000000000LL typedef long long ll;
int g[][],n,m,vis[];
ll d[];
double t;int x,y;
void dijkstra(){
for(int i=;i<=n;i++)d[i]=INF;
d[]=;
for(int i=;i<n;i++){
int u;
ll tm=INF;
for(int j=;j<=n;j++)if(!vis[j]&&d[j]<tm){
u=j;tm=d[j];
}
if(tm>=INF)break;
vis[u]=;
for(int j=;j<=n;j++)if(g[u][j]!=-&&!vis[j])
d[j]=min(d[j],g[u][j]+d[u]);
}
for(int i=;i<=n;i++){
if(t<d[i]){x=i;y=;t=d[i];}
for(int j=;j<i;j++)if(g[i][j]!=-){
double temp=(g[i][j]+d[i]+d[j])/2.0;
if(t<temp){x=j;y=i;t=temp;}
} }
}
int main(){
int a,b,l,cs=;
while(scanf("%d%d",&n,&m) && n){
memset(g,-,sizeof g);
memset(vis,,sizeof vis);
t=;x=;y=;
for(int i=;i<m;i++){
scanf("%d%d%d",&a,&b,&l);
g[a][b]=g[b][a]=l;
}
dijkstra();
printf("System #%d\n",cs++);
if(!y){
printf("The last domino falls after %.1lf seconds, at key domino %d.\n\n",t,x);
}else{
printf("The last domino falls after %.1lf seconds, between key dominoes %d and %d.\n\n",t,x,y);
}
}
return ;
}

C - Pendulum

代码还比较简短,注意转的时候不能高于x轴

 #include <stdio.h>
#include <cstring>
#include <cstdlib>
#include <algorithm>
#include <cmath> using namespace std;
#define lson o<<1
#define rson o<<1|1
#define max(a,b) (a)>(b)?(a):(b)
#define min(a,b) (a)<(b)?(a):(b)
#define INF 2000000000
#define eps 1e-6 typedef long long ll;
const double pi=acos(-);
struct point{
int x,y;
point() {}
point(int x,int y): x(x),y(y) {}
point operator + (const point a){return point(x+a.x,y+a.y);}
point operator - (const point a){return point(x-a.x,y-a.y);}
}p[];
int n;
int dcmp(double x){
if(x>eps)return ;
else if(x<-eps)return -;
return ;
}
double dist(point c){
return sqrt((double)c.x*c.x+(double)c.y*c.y);
}
double ans;
void swing(int o,double l,double ang){
double a0=*pi,dm=0.0;
int next=-;
double amax=*pi;
if(dcmp(p[o].y-l)<)amax=pi+asin(p[o].y/l)-ang;
for(int i=;i<n;i++)if(i!=o){
double d=dist(p[i]-p[o]);
if(dcmp(d-l)>=)continue;
double a=atan2(p[i].y-p[o].y,p[i].x-p[o].x)-ang;
while(a<)a+=*pi;
if(dcmp(a-amax)>=)continue;
if(dcmp(a-a0)<||(dcmp(a-a0)==&&d>dm)){
dm=d,a0=a;
next=i;
}
}
if(next!=-){
ans+=a0*l;
double a=a0+ang;
if(a>=*pi)a-=*pi;
swing(next,l-dm,a);
}
else if(dcmp(p[o].y-l)<)ans+=amax*l;
else ans=pi*l;
} int main(){
int cs=;
double r;
while(scanf("%d%lf",&n,&r) && dcmp(r)){
n++;
p[]=point(,);
for(int i=;i<n;i++){
scanf("%d%d",&p[i].x,&p[i].y);
p[i].x=-p[i].x,p[i].y=-p[i].y;
}
ans=0.0;
swing(,r,0.0);
printf("Pendulum #%d\n",cs++);
printf("Length of periodic orbit = %.2lf\n\n",ans*);
}
return ;
}

D - The New Villa

这种题应该一看数据规模就知道是bfs可以水过的。

 #include <stdio.h>
#include <cstdlib>
#include <cstring>
#include <algorithm> #define STA 30000
int q[STA],d[STA],fa[STA],vis[STA],ans[STA];
int to[][],sw[][];
int n,k,s;
int bfs(int st){
int l,r;
l=r=;
int now=(<<st)*+st-;
q[r++]=now;
fa[now]=-;
while(l<r){
now=q[l++];
int room=now%+,sta=now/;
if(room==n&&sta==(<<n))return ;
int next;
for(int i=;i<=n;i++)if(!vis[now-room+i] && to[room][i] && sta&(<<i)){
next=now-room+i;
vis[next]=;
d[next]=d[now]+;
fa[next]=now;
q[r++]=next;
}
for(int i=;i<=n;i++)if(i!=room && sw[room][i]){
if(!(sta&(<<i)) && !vis[(sta|(<<i))*+room-]){
next=(sta|(<<i))*+room-;
vis[next]=;
d[next]=d[now]+;
fa[next]=now;
q[r++]=next;
}
else if(sta&(<<i) && !vis[(sta^(<<i))*+room-]){
next=(sta^(<<i))*+room-;
vis[next]=;
d[next]=d[now]+;
fa[next]=now;
q[r++]=next;
}
}
}
return ; }
int main(){
//freopen("input.in","r",stdin);freopen("output.out","w",stdout);
int cs=;
while(scanf("%d%d%d",&n,&k,&s) &&n){
int x,y;
memset(to,,sizeof to);
memset(sw,,sizeof sw);
memset(vis,,sizeof vis);
memset(d,,sizeof d);
while(k--){
scanf("%d%d",&x,&y);
to[x][y]=to[y][x]=;
}
while(s--){
scanf("%d%d",&x,&y);
sw[x][y]=;
}
printf("Villa #%d\n",cs++);
if(bfs()){
int u=(<<n)*+n-,dis;
printf("The problem can be solved in %d steps:\n",dis=d[u]);
for(int i=;i<dis;i++){
ans[i]=u;
u=fa[u];
}
int lastroom=,sta0=<<,room,sta;
for(int i=dis-;i>=;i--){
room=ans[i]%+;sta=ans[i]/;
if(room!=lastroom)printf("- Move to room %d.\n",room);
else{
for(int j=;j<=n;j++)if((sta0&(<<j))!=(sta&(<<j))){
if(sta0&(<<j))printf("- Switch off light in room %d.\n",j);
else printf("- Switch on light in room %d.\n",j);
break;
}
}
lastroom=room;sta0=sta;
}
printf("\n"); }else printf("The problem cannot be solved.\n\n"); }
return ;
}

E - Parallelepiped Walk

巧妙地转化成坐标旋转的问题,有几个简化代码的技巧

 #include <stdio.h>
#include <cstring>
#include <cstdlib>
#include <algorithm>
#include <cmath> using namespace std;
#define lson o<<1
#define rson o<<1|1
#define max(a,b) (a)>(b)?(a):(b)
#define min(a,b) (a)<(b)?(a):(b)
#define INF 2000000000 typedef long long ll;
int xx,yy,zz;
ll ans;
ll dist(int x,int y){
return (ll)x*x+(ll)y*y;
}
void go(int dx,int dy,int x,int y,int z,int x1,int x2,int y1,int y2,int h){
if(z==){
ans=min(ans,dist(x-xx,y-yy));
return;
}
if(dx>=&&dx<)go(dx+,dy,x2+z,y,x2-x,x2,x2+h,y1,y2,x2-x1);
if(dx<=&&dx>-)go(dx-,dy,x1-z,y,x-x1,x1-h,x1,y1,y2,x2-x1);
if(dy>=&&dy<)go(dx,dy+,x,y2+z,y2-y,x1,x2,y2,y2+h,y2-y1);
if(dy<=&&dy>-)go(dx,dy-,x,y1-z,y-y1,x1,x2,y1-h,y1,y2-y1);
}
int main(){
int x0,y0,z0,x,y,z;
while(~scanf("%d%d%d%d%d%d%d%d%d",&x0,&y0,&z0,&xx,&yy,&zz,&x,&y,&z)){
if(xx==||xx==x0){
swap(xx,zz);
swap(x0,z0);
swap(x,z);
}
else if(yy==||yy==y0){
swap(yy,zz);
swap(y0,z0);
swap(y,z);
}
if(zz==z0){
zz=z0-zz;
z=z0-z;
}
ans=INF;
go(,,x,y,z,,x0,,y0,z0);
printf("%lld\n",ans);
}
return ;
}

F - Decoding Morse Sequences

我的做法是把所有单词的Morse码编进Trie树,在词尾标记访问次数,然后记忆化搜索。

 #include <stdio.h>
#include <cstring>
#include <cstdlib>
#include <algorithm>
#include <cmath> using namespace std;
#define lson o<<1
#define rson o<<1|1
#define max(a,b) (a)>(b)?(a):(b)
#define min(a,b) (a)<(b)?(a):(b)
#define INF 200000000 typedef long long ll;
int ch[][],sz;
char morse[][]
={".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..",
"--","-.","---",".--.","--.-",".-.","...","-","..-","...-",".--","-..-","-.--","--.."};
char s[],word[],mod[];
ll dp[];
int t[]; void insert(char *s){
char *p=s;
int u=;
for(;*p!='\0';p++){
int temp;
if(*p=='.')temp=;
else temp=;
if(ch[u][temp]==-)ch[u][temp]=++sz;
u=ch[u][temp];
}
if(ch[u][]==-)ch[u][]=++sz;
u=ch[u][];
t[u]++;
}
ll dfs(int now){
if(dp[now]>=)return dp[now];
ll &ans=dp[now];
ans=;
int u=,flag=;
for(int i=now;s[i];i++){
int temp;
if(s[i]=='.')temp=;
else temp=;
if(ch[u][temp]==-)return ans;
u=ch[u][temp];
if(ch[u][]!=-)ans+=t[ch[u][]]*dfs(i+);
}
return ans;
}
int main(){
//freopen("r.in","r",stdin);freopen("r.out","w",stdout);
int T;
scanf("%d",&T);
while(T--){
scanf("%s",s);
int m;
scanf("%d",&m);
memset(ch,-,sizeof ch);
memset(t,,sizeof t);
sz=;
for(int i=;i<m;i++){
mod[]='\0';
scanf("%s",word);
for(int j=;word[j];j++)
strcat(mod,morse[word[j]-'A']);
insert(mod);
}
memset(dp,-,sizeof dp);
dp[strlen(s)]=;
dfs();
printf("%lld\n",dp[]);
}
return ;
}

G - Fill the Cisterns!

二分答案,精度0.0005.

 #include <stdio.h>
#include <cstring>
#include <cstdlib>
#include <algorithm>
#include <cmath> using namespace std;
#define lson o<<1
#define rson o<<1|1
#define max(a,b) (a)>(b)?(a):(b)
#define min(a,b) (a)<(b)?(a):(b)
#define INF 2000000
#define eps 5e-4 typedef long long ll; struct cistern{
double b,h,s;
}c[];
double v,hmax,hmin;
int n; int cmp(cistern a,cistern b){return a.b<b.b;} int cal(double dh){
double vx=;
for(int i=;i<n&&c[i].b<dh;i++){
double t=min(c[i].b+c[i].h,dh);
vx+=(t-c[i].b)*c[i].s;
}
if(vx<v)return -;
if(vx>v)return ;
return ;
}
double search(double low,double hi){
double mid;
while(hi-low>eps){
mid=(hi+low)/2.0;
if(cal(mid)>=)hi=mid;
else low=mid;
}
return hi;
}
int main(){
//freopen("r.in","r",stdin);freopen("r.out","w",stdout);
int t;
scanf("%d",&t);
while(t--){
scanf("%d",&n);
double w,h,vmax;
hmax=;hmin=INF;
vmax=;
for(int i=;i<n;i++){
scanf("%lf%lf%lf%lf",&c[i].b,&c[i].h,&w,&h);
c[i].s=w*h;
hmax=max(hmax,c[i].h+c[i].b);
hmin=min(hmin,c[i].b);
vmax+=c[i].s*c[i].h;
}
scanf("%lf",&v);
if(vmax<v){
printf("OVERFLOW\n");
continue;
} sort(c,c+n,cmp);
double dh=search(hmin,hmax);
printf("%.2lf\n",dh); }
return ;
}

H - Horizontally Visible Segments

线段树染色问题……每次询问一次更新一次,中间hash判重然后加边,最后暴力搜索得到 Triangle 个数。

有个细节是x,y在[0,8000],0<=n<=8000,建立的图应该是稀疏图,用vector存,所以一定要判重的!

 #include <stdio.h>
#include <cstdlib>
#include <cstring>
#include <algorithm>
#include <vector> #define rson o<<1|1
#define lson o<<1
#define H 16000
#define MOD 1403641 using namespace std; vector <int> g[];
int col[<<],y1,y2; struct segment{
int y1,y2,x;
}seg[];
struct Hash{
int va;
Hash *next;
Hash(){va=-;next=NULL;}
}hash[MOD];
void init(){
for(int i=;i<MOD;i++){hash[i].va=-;hash[i].next=NULL;}
}
int exist(int u,int v){
int x=u*+v;
if(hash[x%MOD].va==-){hash[x%MOD].va=x;return ;}
else{
Hash *u=&hash[x%MOD];
while(u->next!=NULL){
if(u->va==x)return ;
u=u->next;
}
if(u->va==x)return ;
u->next=new Hash;
u->next->va=x;u->next->next=NULL;
return ;
}
}
int cmp(struct segment a,struct segment b){return a.x<b.x;}
void pushdown(int o,int l,int r){
if(col[o]!=-){
col[rson]=col[lson]=col[o];
}
}
void upd(int o,int l,int r,int u){
if(y1<=l&&y2>=r){
col[o]=u;
}else if(y2>=l&&y1<=r){
int mid=(l+r)>>;
pushdown(o,l,r);
col[o]=-;
if(y1<=mid)upd(lson,l,mid,u);
if(y2>mid)upd(rson,mid+,r,u);
}
}
void que(int o,int l,int r,int v){
int mid=(l+r)/;
if(y1<=l&&y2>=r){
if(col[o]==-){
que(lson,l,mid,v);
que(rson,mid+,r,v);
}else if(col[o]&&!exist(v,col[o])){
g[v].push_back(col[o]);
}
}else if(y2>=l&&y1<=r){
pushdown(o,l,r);
if(y1<=mid)que(lson,l,mid,v);
if(y2>mid)que(rson,mid+,r,v);
}
}
int main(){
int T,n;
scanf("%d",&T);
while(T--){
scanf("%d",&n);
for(int i=;i<=n;i++)scanf("%d%d%d",&seg[i].y1,&seg[i].y2,&seg[i].x);
sort(seg+,seg+n+,cmp); for(int i=;i<=n;i++)g[i].clear();
memset(col,,sizeof col);
init();
for(int i=;i<=n;i++){
y1=seg[i].y1*;y2=seg[i].y2*;
if(i>)que(,,H,i);
upd(,,H,i);
}
int cnt=;
for(int i=;i<=n;i++)if(g[i].size()>)
for(int j=;j<g[i].size();j++){
int u=g[i][j];
for(int k=;k<g[u].size();k++)
for(int q=;q<g[i].size();q++)if(g[i][q]==g[u][k])cnt++;
} printf("%d\n",cnt);
}
return ;
}

I - 2D Nim

按照每个点向四个方向走的最大步数来判断,哈希查找

 #include <stdio.h>
#include <cstring>
#include <cstdlib>
#include <algorithm>
#include <cmath>
using namespace std;
#define lson o<<1
#define rson o<<1|1
#define max(a,b) (a)>(b)?(a):(b)
#define min(a,b) (a)<(b)?(a):(b)
#define INF 2000000000
#define M 240 typedef long long ll;
int g[][];
int n,m;
struct hash_table{
int v[];
bool vis;
hash_table* next;
hash_table(){vis=;next=NULL;}
void init(){
vis=;
next=NULL;
}
void insert(int *t){
if(!vis){
for(int i=;i<;i++)v[i]=t[i];
vis=;
}
else{
hash_table *u=new hash_table;
u->next=next;
next=u;
u->vis=;
for(int i=;i<;i++)u->v[i]=t[i];
}
}
int search(int *t){
if(vis){
bool flag=;
for(int i=;i<;i++)if(v[i]!=t[i])flag=;
if(flag){vis=;return ;}
}
hash_table* now=next;
while(now!=NULL){
if(now->vis){
bool flag=;
for(int i=;i<;i++)if(now->v[i]!=t[i])flag=;
if(flag){now->vis=;return ;}
}
now=now->next;
}
return ;
}
}hash[M];
int main(){
// freopen("r.in","r",stdin);freopen("r.out","w",stdout);
int t;
scanf("%d",&t);
while(t--){
int k;
scanf("%d%d%d",&n,&m,&k);
memset(g,,sizeof g);
for(int i=;i<M;i++)hash[i].init();
int x,y;
for(int i=;i<k;i++){
scanf("%d%d",&x,&y);
g[x][y]=;
}
int tm[];
for(int i=;i<n;i++)
for(int j=;j<m;j++)if(g[i][j]){
int tot=;
memset(tm,,sizeof tm);
for(int x=i-;x>=&&g[x][j];x--)tm[]++,tot++;
for(int x=i+;x<n&&g[x][j];x++)tm[]++,tot++;
for(int y=j-;y>=&&g[i][y];y--)tm[]++,tot++;
for(int y=j+;y<m&&g[i][y];y++)tm[]++,tot++;
sort(tm,tm+);
hash[tot].insert(tm);
}
memset(g,,sizeof g);
for(int i=;i<k;i++){
scanf("%d%d",&x,&y);
g[x][y]=;
}
bool flag=;
for(int i=;i<n;i++)
for(int j=;j<m;j++)if(g[i][j]){
int tot=;
memset(tm,,sizeof tm);
for(int x=i-;x>=&&g[x][j];x--)tm[]++,tot++;
for(int x=i+;x<n&&g[x][j];x++)tm[]++,tot++;
for(int y=j-;y>=&&g[i][y];y--)tm[]++,tot++;
for(int y=j+;y<m&&g[i][y];y++)tm[]++,tot++;
sort(tm,tm+);
if(!hash[tot].search(tm)){flag=;break;}
} if(flag)printf("YES\n");
else printf("NO\n");
}
return ;
}

J - (Your)((Term)((Project)))

细节题了,递归做最保险。

1.skip空格。

2.加号(或无符号默认为加号)后面对应括号去掉。

3.重复的空格去掉。


 #include <stdio.h>
#include <cstring>
#include <cstdlib>
#include <algorithm>
#include <cmath> using namespace std;
#define lson o<<1
#define rson o<<1|1
#define max(a,b) (a)>(b)?(a):(b)
#define min(a,b) (a)<(b)?(a):(b)
#define INF 200000000
#define SKIP(p) while(*p==' ')++p; typedef long long ll;
char s[],q[];
int res;
void solve(char *s,char *q){
char *p;
int sgn=;
for(p=s;p<=q;p++){
if(*p=='+')sgn=;
else if(*p=='-')sgn=-;
else if(*p=='('){
char *t;
int cnt=;
for(t=p+;t<=q;t++){
if(*t=='(')cnt++;
else if(*t==')')cnt--;
if(!cnt)break;
}
if(sgn>)*p=*t=' ';
if(t-p>)solve(p+,t-);
}
}
}
void deal(char *p,int n){
for(int i=;i<n;i++)if(p[i]<='Z'&&p[i]>='A'){
int l=i-,r=i+;
while(l>=&&r<n){
if(p[l]!='('||p[r]!=')')break;
p[l]=p[r]=' ';
l--;r++;
}
}
solve(p,p+n-);
}
int main(){
//freopen("r.in","r",stdin);freopen("r.out","w",stdout);
int t;
scanf("%d",&t);
gets(s);
while(t--){
gets(s);
char *p=s;
res=;
for(;*p!='\0';p++){
SKIP(p);
q[res++]=*p;
}
deal(q,res);
for(int i=;i<res;i++)if(q[i]!=' ')
printf("%c",q[i]);
printf("\n");
}
return ;
}


狗狗40题~ (Volume C)的更多相关文章

  1. 狗狗40题~(Volume B)

    H - Sorting Slides 应该是个二分匹配的模板题的,但我还不会写 = = 其实数据规模很小,就用贪心的方法就水过了(没加vis判冲突wa了几发,从此开始艰难的没有1A 的生活) #inc ...

  2. 狗狗40题~(Volume A)

    A - The Willy Memorial Program 大模拟题…… 一开始的思路不对,修修补补WA了十发.当时想直接一个并查集做连通来搞定它,结果发现不能很好地判断各管的水位.究其原因还是因为 ...

  3. JAVA经典算法40题及解答

    JAVA经典算法40题 [程序1]   题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 1.程序分 ...

  4. JAVA经典算法40题

    1: JAVA经典算法40题 2: [程序1] 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 3 ...

  5. JAVA经典算法40题(原题+分析)之分析

    JAVA经典算法40题(下) [程序1]   有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?   1.程序分析:  ...

  6. JAVA经典算法40题(原题+分析)之原题

    JAVA经典算法40题(上) [程序1]   题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? [程 ...

  7. JAVA经典算法40题面向过程

    JAVA经典算法40题 [程序1]   题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 1.程序分 ...

  8. 剑指offer 面试40题

    面试40题: 题目:最小的k个数 题:输入n个整数,找出其中最小的K个数.例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,. 解题代码一: # -*- coding ...

  9. java经典算法40题-附带解决代码

    前一段时间工作比较闲,每天没有代码敲的日子有点无聊,于是为了保证自己的编程逻辑力的日常清醒,故百度了一些经典的java算法,然后自己思考编程解决问题,虽然那些东西比较基础了,但是有些题目小编看到了也是 ...

随机推荐

  1. Solr In Action 笔记(4) 之 SolrCloud分布式索引基础

    Solr In Action 笔记(4) 之 SolrCloud Index 基础 SolrCloud Index流程研究了两天,还是没有完全搞懂,先简单记下基础的知识,过几天再写个深入点的.先补充上 ...

  2. poj 3371 Flesch Reading Ease

    http://poj.org/problem?id=3371 #include<cstdio> #include<cstring> #include<algorithm& ...

  3. 深入研究 Win32 结构化异常处理(好多相关文章)

    摘要 就像人们常说的那样,Win32 结构化异常处理(SEH)是一个操作系统提供的服务.你能找到的所有关于 SEH 的文档讲的都是针对某个特定编译器的.建立在操作系统层之上的封装库.我将从 SEH 的 ...

  4. 开源src镜像

    开源src镜像: http://download.savannah.gnu.org/releases/

  5. Types of AOP

    There are two distinct types of AOP: static and dynamic. The difference between them is really the p ...

  6. fedora19配置 SSH 免密码登陆

    a.ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa b.cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys   ...

  7. XML的四种解析器原理及性能比较

    转自zsq 1.DOM     DOM 是用与平台和语言无关的方式表示 XML 文档的官方 W3C 标准.DOM 是以层次结构组织的节点或信息片断的集合.这个层次结构允许开发人员在树中寻找特定信息.分 ...

  8. requirejs2读书笔记

    If you want to do require() calls in the HTML page, then it is best to not use data-main. data-main ...

  9. Foreman 企业级配置管理解决方案

    Foreman 企业级配置管理解决方案 Foreman 企业级配置管理解决方案 笔记本 puppet foreman 构建运维体系 本文是构建运维体系的其中一个关键环节. 什么是 foreman Fo ...

  10. Android Studio 2.1.x 关联SDK API Source

    问题: 看图=>,当在android studio里ctrl+鼠标左键查看例如: TextUtils.isEmpty(content);这段代码的isEmpty方法的实现的时候经常就跑到如图所示 ...