本文整理汇总了C++中vp::reserve方法的典型用法代码示例。如果您正苦于以下问题:C++ vp::reserve方法的具体用法?C++ vp::reserve怎么用?C++ vp::reserve使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类vp
的用法示例。
在下文中一共展示了vp::reserve方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: main
int main() {
int D, nP;
int cnt[2][3];
int tcase = 0;
int x1, x2, y1, y2;
chds.reserve(2000);
chps.reserve(2000);
u.reserve(2000);
l.reserve(2000);
while(1) {
D = geti(); nP = geti();
if(D == 0 && nP == 0) break;
for(int i = 0;i < D;i++) {
x1 = geti(); y1 = geti(); x2 = geti(); y2 = geti();
ds[i*4] = (P){x1,y1};
ds[i*4+1] = (P){x1,y2};
ds[i*4+2] = (P){x2,y1};
ds[i*4+3] = (P){x2,y2};
}
for(int i = 0;i < nP;i++) {
x1 = geti(); y1 = geti(); x2 = geti(); y2 = geti();
ps[i*4] = (P){x1,y1};
ps[i*4+1] = (P){x1,y2};
ps[i*4+2] = (P){x2,y1};
ps[i*4+3] = (P){x2,y2};
}
andrewScan(chds,ds,4*D);
andrewScan(chps,ps,4*nP);
bool ok = 0;
for(int i = 0;i < chds.size();i++) {
for(int j = 0;j < chps.size();j++) {
memset(cnt,0,sizeof cnt);
for(int k = 0;k < 4*D;k++)
cnt[0][ccw(chds[i],chps[j],ds[k])]++;
for(int k = 0;k < 4*nP;k++)
cnt[1][ccw(chds[i],chps[j],ps[k])]++;
if(((cnt[1][1]&&!cnt[1][2]&&cnt[0][2]&&!cnt[0][1]) ||
(!cnt[1][1]&&cnt[1][2]&&!cnt[0][2]&cnt[0][1]) ) && (cnt[1][0]==1&&cnt[0][0]==1)) {
ok = 1; goto ANSWERING;
}
}
}
ANSWERING:
printf("Case %d: ",++tcase);
if(ok) puts("It is possible to separate the two groups of vendors.");
else puts("It is not possible to separate the two groups of vendors.");
puts("");
}
return 0;
}