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. 给 chorme Developer Tool F12 开发者工具.加入更酷的代码着色

    地址:https://github.com/mauricecruz/chrome-devtools-zerodarkmatrix-theme 默认样式 替换目录为: mac ~/Library/App ...

  2. [Android] 输入系统(二)

    在上一篇文章的最后,我们发现InputDispatcher是调用了InputChannel->sendMessage把键值发送出去,那么相应的,也有接收键值的地方.接收函数是InputChann ...

  3. DC-DC转换器原理与应用

    DC/DC转换器为转变输入电压后,有效输出固定电压的电压转换器.DC/DC转换器分为三类:升压型DC/DC转换器.降压型DC/DC转换器以及升降压型DC/DC转换器.根据需求可采用三类控制.PWM控制 ...

  4. PL/SQL 动态SQL

    declare msql varchar2(200); row_id varchar2(200); begin loop row_id := 'AAATGiAAEAAAuLLAAA'; msql := ...

  5. G - Oil Skimming - hdu 4185(二分图匹配)

    题意:在大海里有一些石油 ‘#’表示石油, ‘.’表示水,有个人有一个工具可以回收这些石油,不过只能回收1*2大小的石油块,里面不能含有海水,要不就没办法使用了,求出来最多能回收多少块石油 分析:先把 ...

  6. C# asp.net页面通过URL参数传值中文乱码问题解决办法

    1.编码string state=Server.UrlEncode(stateName.Text.Trim());Response.Redirect("aaa.aspx?state=&quo ...

  7. Oracle 数据库基本操作——实用手册、表操作、事务操作、序列

    目录: 0. 参考链接与参考手册1. oracle 实用(常用操作)指令2. 数据库基本操作语法 a) 表操作 1)创建表 2)更新表 3)删除表 4)查询 b) 事务操作 c) 序列操作 1)创建序 ...

  8. php命令行

    转载(http://blog.jobbole.com/109093/) PHP作为一门web开发语言,通常情况下我们都是在Web Server中运行PHP,使用浏览器访问,因此很少关注其命令行操作以及 ...

  9. web前端面试试题总结---javascript篇

    JavaScript 介绍js的基本数据类型. Undefined.Null.Boolean.Number.String. ECMAScript 2015 新增:Symbol(创建后独一无二且不可变的 ...

  10. Linux系统下查看某文件修改的时间戳

    Linux系统下查看某文件修改的时间戳查看文件时间戳命令:stat awk.txt File: `awk.txt' Size: 20              Blocks: 8          I ...