本文整理汇总了C++中poly::push_back方法的典型用法代码示例。如果您正苦于以下问题:C++ poly::push_back方法的具体用法?C++ poly::push_back怎么用?C++ poly::push_back使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类poly
的用法示例。
在下文中一共展示了poly::push_back方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: convex_hull
void convex_hull(poly &v,poly &p)
{
p.clear() ;
sort(v.begin(),v.end()) ;
v.resize(unique(v.begin(),v.end())-v.begin()) ;
int n=v.size() ;
int sz=0 ;
for(int i=0;i<n;i++)
{
while(sz>=2 && dcmp(cross(st[sz-2],st[sz-1],v[i]))<0)
sz-- ;
st[sz++]=v[i] ;
}
for(int i=0;i<sz;i++) p.push_back(st[i]) ;
sz=0 ;
for(int i=0;i<n;i++)
{
while(sz>=2 && dcmp(cross(st[sz-2],st[sz-1],v[i])>0))
sz-- ;
st[sz++]=v[i] ;
}
for(int i=sz-1;i>=0;i--)
{
if(i==sz-1 && st[i]==p.back()) continue ;
if(i==0 && st[i]==p[0]) continue ;
p.push_back(st[i]) ;
}
}
示例2: read
void read( poly& pp , string ss , LL mod ){
pp.clear();
if( ss[ 0 ] != '-' ) ss = '+' + ss;
size_t st = 0;
while( st < ss.length() ){
size_t lst = st;
st ++;
while( st < ss.length() and
ss[ st ] != '+' and
ss[ st ] != '-' ) st ++;
pp.push_back( parse( ss , lst , st , mod ) );
}
}
示例3: main
int main(void) {
int x, y, i, k = 0;
point p;
while (1) {
cin >> n >> m;
if (n == 0 && m == 0) break;
saplings.clear();
for (i = 0; i < n; ++i) {
cin >> x >> y;
p = point(x,y);
saplings.push_back(p);
}
printf("Case %d: length = %.2f\n", ++k, solve());
}
return 0;
}
示例4: main
int main(){
X.push_back(0);
X.push_back(1);
str=new char[101];
int t;
readint(t);
while(t--){
scanf("%s",str);
ptr=0;
poly res=solve();
printpoly(res);
printf("%.19Lf\n",integrate(res));
}
return 0;
}
示例5: convex_hull
void convex_hull(poly & t, poly & r) {
unsigned i;
Compare order;
// Search leftmost vertex
order.p0 = t[0];
for (i = 1; i < t.size(); ++i)
if (t[i].real() < order.p0.real())
order.p0 = t[i];
sort(t.begin(), t.end(), order);
for (i = 0; i < t.size(); ++i) {
r.push_back(t[i]);
// Pop vertices that become internal
while (r.size() > 3u && angle(r.end()[-3], r.end()[-2], r.end()[-1])) {
r.end()[-2] = r.back();
r.pop_back();
}
}
return;
}
示例6: scanf
main()
{
int n ; scanf("%d",&n) ;
for(int i=1;i<=n;i++)
{
scanf("%d%d",&x[i],&y[i]) ;
a.push_back((pt){mul/x[i],mul/y[i]}) ;
}
convex_hull(a,b) ;
for(int i=0;i<b.size();i++)
{
if(i && dcmp(b[i-1].y-b[i].y)<=0) break ;
int x0=int(mul/b[i].x+0.5) , y0=int(mul/b[i].y+0.5) ;
ans.insert((pii){x0,y0}) ;
}
for(int i=1;i<=n;i++) if(ans.count((pii){x[i],y[i]}))
printf("%d ",i) ;
printf("\n") ;
}