权威做网站的公司,企业为什么要创新,跨境电商的现状及前景,京东这样的网站是怎么做的P1296 奶牛的耳语
一开始以为是普通的二重循环#xff0c;结果做出来答案是错的#xff0c;但是思路不可能有问题#xff0c;于是抱着试一试的想法加了一个排序#xff0c;这样就过了#xff0c;每次在第二重循环里遇到大于最小能听到的距离就跳出循环#xff0c;进入下…P1296 奶牛的耳语
一开始以为是普通的二重循环结果做出来答案是错的但是思路不可能有问题于是抱着试一试的想法加了一个排序这样就过了每次在第二重循环里遇到大于最小能听到的距离就跳出循环进入下一轮一直遍历完就行了
#includebits/stdc.h
using namespace std;
int a[1000000];
int main(){int n,m,ans0;scanf(%d %d,n,m);for(int i0;in;i){scanf(%d,a[i]);}sort(a,an);for(int i0;in;i){for(int ji1;jn;j){if(a[j]-a[i]m)ans;else break;}}printf(%d,ans);return 0;
}
P1328 [NOIP2014 提高组] 生活大爆炸版石头剪刀布
一道普及减的题目唯一一个难的地方就是对输赢情况判断的处理花了不少时间对于周期循环的处理可以用取余来代替
#includebits/stdc.h
using namespace std;
int a[300],b[300],ansa0,ansb0;
void check(int a,int b){if(a0){if(b1)ansb;if(b2)ansa;if(b3)ansa;if(b4)ansb;}else if(a1){if(b0)ansa;if(b2)ansb;if(b3)ansa;if(b4)ansb;} else if(a2){if(b0)ansb;if(b1)ansa;if(b3)ansb;if(b4)ansa;}else if(a3){if(b0)ansb;if(b1)ansb;if(b2)ansa;if(b4)ansa;}else if(a4){if(b0)ansa;if(b1)ansa;if(b2)ansb;if(b3)ansb;}
}
int main(){int n,m,k;scanf(%d %d %d,n,m,k);for(int i0;im;i){scanf(%d,a[i]);}for(int j0;jk;j){scanf(%d,b[j]);}for(int i0;in;i){check(a[i%m],b[i%k]);// printf(%d %d\n,a[i%m],b[i%k]);}printf(%d %d,ansa,ansb);return 0;
}
P1258 小车问题
正解应该是二分但这里可以用数学的方法进行计算出正确结果那么我们先使用数学方法
显然要保证甲的步行时间与乙的步行时间相等所以甲乙的行程是对称的即s1s3。又要保证总时间最短所以小车应该在半路回头去接乙而不是原地不动等乙来。由此可绘出上图。
由图可得知甲步行到终点的时间 和 车回头接乙再带乙到终点的时间 相等。就样例而言车速是步行速度的5倍故车走的路程是人走的路程的5倍车比人多走了4倍。又车与人共同行走了s3的路程所以车比人多走的是2∗s2是人走的4倍故s22∗s3. 故s2是两份s1与s3都是一份。
而总时间可以直接看车走的路程是整条路的长度加上折回来又折回去的路程即(121)2∗28(121)2∗28份。
#includebits/stdc.h
using namespace std;
int main(){double s,a,b;scanf(%lf %lf %lf,s,a,b);double ans;ans(2*a*s)/(3*ab);printf(%.6lf,ans/a(s-ans)/b);return 0;
}
二分的方法就留给明日了