A:多项式就不说了,不过有点ft的是,后面有个空格,害大家错了不少次但是这个最后的一个空格,我在比较的时候是已经忽略掉的,而且其他程序在这个方面是不会有错的,但是这个数据就是有错:(现在还没看出来,可能行太长,但是我设的是4096,这里还没这么长的:(
D;翻转旋转那个,粗一看比较难,多看鸡眼就可以发现两个同色的在一起的就可以任意左移右移(在那种规则下),所以就很容易了,两两销去,看最后的就行
E:cable,本来这个是那个石子的,然后换成这个,我打算是送分的。二分搜索就可以了,很多同学错了,可能是因为输出两位小数的错误其实看清楚这个题目限定精确度只能是厘米,所以再小没意义,也根本不涉及什么四舍五入。看这个题目规模,不算大(10000),所以完全可以都乘上100变成整数的二分查找,估计很多同学都能过了。
F:stick,不知道图论中有没有完全对应的模型。总之在这里是可以用贪心法的先按某一个排序,比如第一个w从小到大排序然后从前往后放遍就可以,下面是我的程序#includesearch.hstructStick{intl,w;}s[5000],p[5000];intn,T,m;intcompare(constvoid*a,constvoid*b){if(((Stick*)a)-l==((Stick*)b)-l)return((Stick*)a)-w-((Stick*)b)-w;return((Stick*)a)-l-((Stick*)b)-l;}voidput(Stickx){inti=0;while(imp.wx.w)i++;p=x;if(i==m)m++;}
voidgo(){cinn;for(inti=0;in;i++)cins.ls.w;qsort(s,n,sizeof(Stick),compare);m=0;for(i=0;in;i++)put(s);coutmendl;}voidmain(){cinT;while(T--)go();}
G:几何体,其实想到算法就很简单,由于题目只要求最小的门的数目而不用求路径,所以只要注意到任意两点不,只要不在某一个墙的同侧就需要开一次门(也只需要一次),题目就变成只要求一下边上的所有线段的中点(一种取法而已)到目的地的异侧最少的一个点就行。
|