机械产品做哪个网站,优秀品牌vi设计公司,百度平台营销软件,怎样做网络宣传T1:P1518-两只塔姆沃斯牛 The Tamworth Two 题目大意
两个东西#xff0c;按照一个方向前进#xff0c;他们撞到墙壁会顺时针90#xff0c;求他们多久后相遇。 解题思路
暴力模拟 code
// luogu-judger-enable-o2
#includecstdio
#includeiostream
using…T1:P1518-两只塔姆沃斯牛 The Tamworth Two 题目大意
两个东西按照一个方向前进他们撞到墙壁会顺时针90°求他们多久后相遇。 解题思路
暴力模拟 code
// luogu-judger-enable-o2
#includecstdio
#includeiostream
using namespace std;
const int dx[4]{-1,0,1,0},dy[4]{0,1,0,-1};
struct node{int x,y,f;
}f,c;
char a[11][11];
int main()
{for(int i1;i10;i)for(int j1;j10;j){cina[i][j];if(a[i][j]F) f(node){i,j,0};if(a[i][j]C) c(node){i,j,0};}for(int i1;i100000;i){if(a[f.xdx[f.f]][f.ydy[f.f]]*||f.x10f.f2||f.y10f.f1||f.x1f.f0||f.y1f.f3)f.f(f.f1)%4;else f.xdx[f.f],f.ydy[f.f];if(a[c.xdx[c.f]][c.ydy[c.f]]*||c.x10c.f2||c.y10c.f1||c.x1c.f0||c.y1c.f3)c.f(c.f1)%4;else c.xdx[c.f],c.ydy[c.f];if(f.xc.xf.yc.y){printf(%d,i);return 0;}}printf(0);
}T2:P1529-回家 Bessie Come Home 题目大意
26个小写字母和26个大写字母用边连接形成带权无向图 求离Z最近的大写字母。 解题思路
从Z出发然后计算每个大写字母的距离最小的。 code
// luogu-judger-enable-o2
#includecstdio
#includecstring
#includealgorithm
#includequeue
#includeiostream
using namespace std;
struct line{int from,to,w,next;
}a[200010];
int tot,ls[100],f[100],p,s,w,ans;
char x,y;
bool v[100];
queueint q;
void addl(int x,int y,int w)
{a[tot](line){x,y,w,ls[x]};ls[x]tot;}
void spfa()
{q.push(s);v[s]true;memset(f,127/3,sizeof(f));f[s]0;while(!q.empty()){int xq.front();q.pop();for(int ils[x];i;ia[i].next){int ya[i].to;if(f[x]a[i].wf[y]){f[y]f[x]a[i].w;if(!v[y]){v[y]true;q.push(y);}}}v[x]false;}
}
int main()
{scanf(%d,p);for(int i1;ip;i){cinxyw;if(xZ) x-A-1;else x-a-27;if(yZ) y-A-1;else y-a-27;addl(x,y,w);addl(y,x,w);}s26;spfa();f[ans]2147483647;for(int i1;i25;i)if(f[i]f[ans]) ansi;printf(%c %d,ansA-1,f[ans]);
}T3-P1530 分数化小数 Fractions to Decimals 题目大意
将一个分数表示成小数形式。 解题思路
因为懒得写所以用了一道更难的题的方法。 code
// luogu-judger-enable-o2
#includecstdio
#includealgorithm
using namespace std;
int t;
int a,b,k,d,ans1,s;
int gcd(int a,int b)
{if (a%b0) return b;return gcd(b,a%b);
}
int ksm(int x,int k)
{int ans0;while(k){if (k1) ans(ansx)%b;x(x*2)%b;k1;}return ans;
}
int qsm(int x,int k)
{int ans1;while(k){if (k1) ansksm(ans,x);xksm(x,x);k1;}return ans;
}
int phi(int x)
{int ansx;for (int i2;i*ix;i)if (x%i0) {ansans/i*(i-1);while (x%i0) x/i;}if (x1) ansans/x*(x-1);return ans;
}
void print(int a,int b,int hlen,int rlen)
{s;aa%b*10;if(hlenrlen0)hlen1;for(int i1;ihlen;i){printf(%d,a/b);s;if(s76) printf(\n),s0;aa%b*10;}if(rlen){printf(();s;if(s76) printf(\n),s0;for(int i1;irlen;i){printf(%d,a/b);s;if(s76) printf(\n),s0;aa%b*10;}printf());s;if(s76) printf(\n),s0;}
}
int main()
{//freopen(out.txt,w,stdout);scanf(%d%d,a,b);printf(%d.,a/b);int ka/b;if(!k) s1;while(k){s;if(s76) printf(\n),s0;k/10;}int baa,bbb;k10;ans10;int dgcd(a,b);a/d;b/d;dgcd(b,k);while ((dgcd(b,k))1) b/d,ans1;if (b1) {print(ba,bb,ans1,0);return 0;}int x,y;xyphi(b);for (int i2;i*ix;i)if (!(y%i)){while (!(x%i)qsm(k,x/i)1) x/i;do y/i; while(!(y%i));}if (y1qsm(k,x/y)1) x/y;print(ba,bb,ans1,x);
}