狗狗40题~ (Volume C)
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)的更多相关文章
- 狗狗40题~(Volume B)
H - Sorting Slides 应该是个二分匹配的模板题的,但我还不会写 = = 其实数据规模很小,就用贪心的方法就水过了(没加vis判冲突wa了几发,从此开始艰难的没有1A 的生活) #inc ...
- 狗狗40题~(Volume A)
A - The Willy Memorial Program 大模拟题…… 一开始的思路不对,修修补补WA了十发.当时想直接一个并查集做连通来搞定它,结果发现不能很好地判断各管的水位.究其原因还是因为 ...
- JAVA经典算法40题及解答
JAVA经典算法40题 [程序1] 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 1.程序分 ...
- JAVA经典算法40题
1: JAVA经典算法40题 2: [程序1] 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 3 ...
- JAVA经典算法40题(原题+分析)之分析
JAVA经典算法40题(下) [程序1] 有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 1.程序分析: ...
- JAVA经典算法40题(原题+分析)之原题
JAVA经典算法40题(上) [程序1] 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? [程 ...
- JAVA经典算法40题面向过程
JAVA经典算法40题 [程序1] 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 1.程序分 ...
- 剑指offer 面试40题
面试40题: 题目:最小的k个数 题:输入n个整数,找出其中最小的K个数.例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,. 解题代码一: # -*- coding ...
- java经典算法40题-附带解决代码
前一段时间工作比较闲,每天没有代码敲的日子有点无聊,于是为了保证自己的编程逻辑力的日常清醒,故百度了一些经典的java算法,然后自己思考编程解决问题,虽然那些东西比较基础了,但是有些题目小编看到了也是 ...
随机推荐
- 在安装包运行时指定Component的安装路径
Basic MSI工程类型中如果实现动态指定安装路径的功能,下面介绍的方法也适用于InstallScript MSI工程. 1. 在Setup Design中找到相对应的Component. 2. 点 ...
- 关于SD卡
http://blog.csdn.net/androidwifi/article/details/17725989 http://www.cnblogs.com/greatverve/archive/ ...
- DZY Loves Colors
CF #446C:http://codeforces.com/problemset/problem/444/C 题意:给你n个数,大小从1到n,然后又两种操作,1 a b c表示把区间a b 更新为c ...
- linux下删除修改时间为某天之前的文件
time_file #新建一个标识文件,修改时间为2014年4月9日0点0分 find . ! -cnewer time_file | xargs rm #删除最后修改时间在上述标识文件之前的所有文件
- 【转】android蓝牙开发---与蓝牙模块进行通信--不错
原文网址:http://www.cnblogs.com/wenjiang/p/3200138.html 近半个月来一直在搞android蓝牙这方面,主要是项目需要与蓝牙模块进行通信.开头的进展很顺利, ...
- 【宽搜】【并查集】Vijos P1015 十字绣
题目链接: https://vijos.org/p/1015 题目大意: n*m的网格,线只能在网格的顶点处才能从布的一面穿到另一面.每一段线都覆盖一个单位网格的两条对角线之一,而在绣的过程中,一针中 ...
- CentOS 6.4 安装 Fcitx4.0
一.首先安装中文支持: su root yum install "@Chinese Support" exit yum remove ibus 注销再登陆 二.安装fcitx 下载 ...
- HDU5406---CRB and Apple( DP) 2015 Multi-University Training Contest 10
题意比较简单, dp[i][j] 表示上一次男女吃的deliciousness分别为i, j的时候的吃的最多的苹果. 那么dp[i][j] = max(dp[i][k] + 1), 0 < ...
- python自动化测试遇到的零零碎碎
1.需求: 提取xx.py中所有的函数名,形成一个类似于索引的参考. 解决方式: grep "def" *.py| awk '{print $2}'|awk -F ':' '{pr ...
- Ubuntu输入密码之后,桌面闪一下黑屏,然后又返回到输入密码界面。但是其他账户可以登入
1)原因:主目录下的.Xauthority文件拥有者变成了root,从而以用户登陆的时候无法都取.Xauthority文件 说明:Xauthority,是startx脚本记录文件.Xserver启动时 ...