本文整理汇总了C++中vii类的典型用法代码示例。如果您正苦于以下问题:C++ vii类的具体用法?C++ vii怎么用?C++ vii使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了vii类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: goto_free_point
int goto_free_point(const vii& g, int& t){
vi bfs;
vi res;
vi revisited;
revisited.resize(num_intersect);
for(int i=0; i < num_intersect; ++i)
revisited[i] = 0;
for(int i=0; i < (int)g.size(); ++i)
bfs.push_back(g[i].first);
int go;
while(!bfs.empty()){
go = bfs.back();
bfs.pop_back();
if(visited[go] && !revisited[go]){
res.push_back(go);
revisited[go] = 1;
for(int i=0; i < (int)g.size(); ++i)
if(!revisited[go])
bfs.push_back(graph[go][i].first);
}
else{
break;
}
}
for(int i=0; i < (int)res.size(); ++i)
vpath[veh].push_back(res[i]);
return go;
}
开发者ID:remyzorg,项目名称:gphc2014,代码行数:30,代码来源:routing.cpp
示例2: out
void out(const vii & x, int b, int e) {
if (b >= e || x[b].first == x[e - 1].first)
return;
int mid = x[(b + e) / 2].first;
int i = b;
for (; i < x.size() && x[i].first < mid; ++i)
res.push_back(pii(mid, x[i].second));
out(x, b, i);
for (i = e - 1; i >= b && x[i].first > mid; --i)
res.push_back(pii(mid, x[i].second));
out(x, i + 1, e);
}
开发者ID:DmitryPro,项目名称:code_antiplagiat,代码行数:12,代码来源:7502.cpp
示例3: main
int main(){
FASTER;
vii temp;
cin >> n;
s1=s2=0;
for (int i = 0,t; i < n; ++i) {
cin >> t;
temp.push_back(ii(t,i));
}
sort(temp.begin(),temp.end());
for (int i = 0; i <n; ++i) {
a.push_back(temp[i].first);
ida.push_back(temp[i].second+1);
}
temp.clear();
cin >> m;
for (int i = 0,t; i <m; ++i) {
cin >> t;
temp.push_back(ii(t,i));
}
sort(temp.begin(),temp.end());
for (int i = 0; i < m; ++i) {
b.push_back(temp[i].first);
idb.push_back(temp[i].second+1);
}
temp.clear();
s1=s2=0;
for (int i = 0; i < a.size(); ++i) {
s1+=a[i];
}
for (int i = 0; i < b.size(); ++i) {
s2+=b[i];
}
sol();sol();
// printf("%lld %lld\n",s1,s2);
cout << abs(s1-s2) << endl;
cout << ans.size() << endl;
if(ans.size()){
for (int i = 0; i < ans.size(); ++i) {
cout << ans[i].first << " " << ans[i].second << endl;
}
}
return 0;
}
开发者ID:giusevtr,项目名称:problemsolving,代码行数:52,代码来源:D.cpp
示例4: primeFactors
void primeFactors(ll N, vii &factors) {
ll PF_idx = 0, PF = primes[PF_idx];
while (PF * PF <= N){
ii f(PF, 0);
while (N % PF == 0){
N /= PF;
f.second++;
}
if (f.second > 0){
factors.push_back(f);
}
PF = primes[++PF_idx];
}
if (N != 1) factors.push_back(ii(N,1));
}
开发者ID:nmackay132,项目名称:CompetitveProgramming,代码行数:15,代码来源:Factovisers.cpp
示例5: get_road
int get_road(int ridx, const vii& g, int &t){
coord_t dir = directions[ridx];
double min_dist = 800000000.0;
int res = -1;
for(int i = 0; i < (int)g.size(); ++i){
double min_dist2= dist(dir, coords[g[i].first]);
if(visited[g[i].first] < 2 && min_dist > min_dist2){
min_dist = min_dist2;
res = i;
}
}
// if(res == -1) return goto_free_point(g, t);
// return res;
return (res == -1)?droad(rd)%g.size():res;
}
开发者ID:remyzorg,项目名称:gphc2014,代码行数:15,代码来源:routing.cpp
示例6: main
int main(){
int n, i, k, a,b, maxlis;
scanf("%d", &n);
for(i=0; i<n; i++) {
scanf("%d %d", &a, &b);
pairs.push_back(make_pair(a,b));
}
vii::iterator low;
lis.push_back(pairs[0]);
for(i=1, k=1, maxlis=1; i<n; i++){
if(pairs[i].first>lis[k].first && pairs[i].second>lis[k].second) {
if(k+1==lis.size())
lis.push_back(pairs[i]);
else
lis[++k]=pairs[i];
if(k+1>maxlis) maxlis=k+1;
} else{
low = lower_bound(lis.begin(), lis.begin()+k+1, pairs[i]);
lis[k=low-lis.begin()]=pairs[i];
}
}
printf("%d\n", maxlis);
return 0;
}
开发者ID:ABHINAVKR,项目名称:ACM,代码行数:26,代码来源:LIS2.cpp
示例7: ok
bool ok(int l){
int c1 = 0;
int c2 = 0;
for (int i = 1; i <= l; ++i) {
if(a[i] < a[c1])c1 = i;
if(b[i] < b[c2])c2 = i;
}
vector<pair<ll, ii> > p;
for (int i = 0; i < m; ++i) {
if(tp[i]==1) p.push_back(pair<ll, ii> (a[c1]*c[i], ii(i,c1)));
if(tp[i]==2) p.push_back(pair<ll, ii> (b[c2]*c[i], ii(i,c2)));
}
sort(p.begin(), p.end());
int sum = 0;
int cnt = 0;
X.clear();
for (int i = 0; i < p.size(); ++i) {
if(sum+p[i].first>s)break;
sum+=p[i].first;
X.push_back(p[i].second);
cnt++;
}
return cnt >= k;
}
开发者ID:giusevtr,项目名称:problemsolving,代码行数:26,代码来源:D.cpp
示例8: main
int main() {
ios::sync_with_stdio(0);
double d;
int m, tc = 1;
while( cin >> d >> m) {
cout << "Case " << tc++ << ":" << endl;
memo.clear(); memo.resize(105, -1);
prices.clear(); prices.resize(m + 1);
prices[0].first = 1; prices[0].second = (d + eps) * 100;
for(int i = 1; i <= m; i++) {
int tmp; cin >> tmp >> d;
prices[i].first = tmp; prices[i].second = (d + eps) * 100;
}
string str;
cin.get();
getline(cin, str);
stringstream ss(str);
int tmp;
while(ss >> tmp) {
cout << "Buy " << tmp << " for $" << fixed << setprecision(2) << (double)solve(tmp) / 100 << endl;
}
}
return 0;
}
开发者ID:mehranagh20,项目名称:uvaSolvedPromblems,代码行数:25,代码来源:10980-Lowest-Price-in-Town.cpp
示例9: main
int main(){
int vertices,arestas,caso=1;
while(scanf("%d %d", &vertices, &arestas) && vertices && arestas){
for(int i = 0; i < arestas; i++)
{
int u,v;
scanf("%d %d", &u, &v);
adj[u].push_back(v);
adj[v].push_back(u);
}
memset(dfs_num, -1 , sizeof(dfs_num));
memset(visitados, 0 , sizeof(visitados));
dfsNumbercounter = 0;
for(int i = 0; i <= vertices; i++){
if(dfs_num[i]==DFS_WHITE){findBridges(i);}
}
cout << caso++ << endl;
cout << endl;
for(int i = 0; i < bridge.size();i++){
printf("%d %d\n",bridge[i].first,bridge[i].second);
}
cout << "#" << endl;
bridge.clear();
int i=vertices+5;
while(i--){
adj[i].clear();
}
}
return 0;
}
开发者ID:lcavalcante,项目名称:AA,代码行数:33,代码来源:main.cpp
示例10: main
int main(){
FASTER;
int n;
int Case=1;
while(cin >> n, n){
cas.clear();
for(int i = 0 ; i < n ; i++){
int a,m,g;
cin >> a >> m >> g;
castle c{a,m,g};
C.push_back(c);
cas.push_back(ii(max(a,m+g), m+g));
}
adj.assign(n,vi());
for(int i = 0 ; i < n-1;i++){
int u,v;cin >> u >> v;
u--,v--;
adj[u].push_back(v);
adj[v].push_back(u);
}
ii ans = ii(1e9,1e9);
for(int i = 0 ; i < 1;i++){
ans = min(ans,dfs(i));
}
cout << "Case " << (Case++)<< ": ";
cout << ans.first << endl;
}
}
开发者ID:giusevtr,项目名称:problemsolving,代码行数:29,代码来源:1093-Castles.cpp
示例11: main
int main()
{
ifstream fin("marathon.in");
ofstream fout("marathon.out");
int N;
fin >> N;
points.resize(N);
for (int i = 0; i < N; ++i)
{
fin >> points[i].first >> points[i].second;
}
T.resize(N - 2);
res.resize(N - 2);
T[0].first = 0;
T[0].second = dist_cont(2, N-1);
res[0] = T[0].first + T[0].second + dist_two(0, 2);
int result = res[0];
for (int k = 1; k <= N - 3; ++k)
{
T[k].first = T[k - 1].first + dist_two(k - 1, k);
T[k].second = T[k - 1].second - dist_two(k + 1, k+2);
res[k] = T[k].first + T[k].second + dist_two(k, k + 2);
result = min(result, res[k]);
}
fout << result << '\n';
return 0;
}
开发者ID:YourRatzon,项目名称:Algorithmic_Problems,代码行数:32,代码来源:marathon.c
示例12: doGreedy
void doGreedy()
{
int cek;
LL total = 0;
// SOrt dlu
sort(dragons.begin(), dragons.end());
sort(knights.begin(), knights.end());
REP(a,n)
{
cek = 0;
REP(b,m)
{
//printf("dragon : %d \n",dragons[a]);
// Ga bisa dipake lagi
if(knights[b].second == 1) continue;
if(knights[b].first >= dragons[a] )
{
//printf("KILL by : %d\n",knights[b].first);
cek = 1;
total += knights[b].first;
knights[b].second = 1;
break;
}
}
if(!cek)
{
break;
}
}
开发者ID:Delpro-Club,项目名称:Programming-Code,代码行数:32,代码来源:DragonOfWaterloo.cpp
示例13: main
int main() {
freopen("milk.in", "r", stdin);
freopen("milk.out", "w", stdout);
int n, m, i,j, a,b;
long long p;
scanf("%d %d", &n, &m);
for(i=0; i<m; i++) scanf("%d %d", &a, &b), farmers.push_back(ii(a,b));
sort(farmers.begin(), farmers.end());
p=0;
for(i=0; n>0; i++){
if(n>=farmers[i].second){
n-=farmers[i].second;
p+=farmers[i].first*farmers[i].second;
}else{
p+=farmers[i].first*n;
n=0;
}
}
printf("%lld\n", p);
return 0;
}
开发者ID:ABHINAVKR,项目名称:ACM,代码行数:25,代码来源:milk.cpp
示例14: main
int main(){
FILE *f;
f =fopen("input/OrderingTasks.in", "r");
#ifdef ONLINE_JUDGE
f = stdin;
#endif
int m,n;
while(fscanf(f, "%d %d", &n, &m) == 2 && n){
g.clear();
g.assign(n, vi());
for(int i = 0 ; i < m ; i++){
int u,v;
fscanf(f, "%d %d", &u,&v);
g[u-1].push_back(v-1);
}
vi sortedV;
for(int i = 0 ; i < n ; i++){
if(!visited[i])
dfs(i, sortedV);
}
memset(visited, 0, sizeof visited);
for(int i = sortedV.size() -1 ; i >= 0 ; i--){
printf("%d", sortedV[i] + 1);
if(i)printf(" ");
else printf("\n");
}
}
return 0;
}
开发者ID:giusevtr,项目名称:problemsolving,代码行数:32,代码来源:OrderingTasks.cpp
示例15: main
int main() {
freopen("input.txt", "r", stdin);
freopen("output.txt", "w", stdout);
scanf("%d", &n);
ll sum = 0;
for(int i = 0; i < n; ++i) {
int a, b; scanf("%d %d", &a, &b);
sum += a;
s.pb(mp(a, -1));
s.pb(mp(b, 1));
}
sort(s.begin(), s.end());
ll qtd = 0;
ll maxi = sum;
ll p = 0;
for(int i = 0; i < s.size(); ++i) {
if(s[i].S == -1) {
qtd -= s[i].S;
sum -= s[i].F;
}
ll foo = qtd * (ll)s[i].F + sum;
if(foo > maxi) {
maxi = foo;
p = s[i].F;
}
if(s[i].S == 1) qtd -= s[i].S;
}
printf("%lld %lld\n", p, maxi);
return 0;
}
开发者ID:juniorandrade1,项目名称:Competitive-Programming,代码行数:30,代码来源:L.cpp
示例16: findBridges
void findBridges(int u)
{
dfs_num[u]=dfs_low[u]=dfsNumbercounter++;
for(int i =0; i < adj[u].size();i++){
int vizinho = adj[u][i];
if(dfs_num[vizinho] == DFS_WHITE)
{
dfs_parent[vizinho] = u;
findBridges(vizinho);
if(dfs_low[vizinho]>dfs_num[u]){
bridge.push_back(ii(u,vizinho));
bridge.push_back(ii(vizinho,u));
}
else {bridge.push_back(ii(u,vizinho));}
visitados[u][vizinho]=visitados[vizinho][u]=true;
dfs_low[u]=min(dfs_low[u],dfs_low[vizinho]);
}
else if(vizinho!=dfs_parent[u]){
dfs_low[u] = min(dfs_low[u],dfs_num[vizinho]);
if(!visitados[u][vizinho]){
bridge.push_back(ii(u,vizinho));
visitados[u][vizinho]=visitados[vizinho][u]=true;
}
}
}
}
开发者ID:lcavalcante,项目名称:AA,代码行数:30,代码来源:main.cpp
示例17: sol
void sol(){
if(s2<s1){
vi t=a;a=b;b=t;
ll x=s1;s1=s2;s2=x;
t=ida;ida=idb;idb=t;
fliped=!fliped;
}
if(a.empty() || b.empty())return ;
if(abs(s1-s2)==0){return ;}
ll diff = abs(s2 - s1);
ll Y = diff;
int x,y;
x=y=0;
// printf("diff = %lld\n",diff);
for (int i = 0; i < a.size(); ++i) {
vi::iterator it = lower_bound(b.begin(), b.end(), diff/2 + a[i]);
int j = it-b.begin();
if(j && j == b.size())j--;
// printf("i,j=%d,%d\n",i,j);
ll ns1 = s1 - a[i] + b[j];
ll ns2 = s2 - b[j] + a[i];
// printf("debug a[%d] = %d b[%d] = %d\n",i,a[i],j,b[j]);
// printf("debug ns1 = %lld ns2 = %lld\n",ns1,ns2);
if(abs(ns1 - ns2) < Y){
x = i;
y = j;
// printf("debug %d %d\n",x,y);
Y = abs(ns1 - ns2);
}
}
if(Y<diff){
// printf("swaping a[%d] b[%d] diff = %lld\n", x,y, Y);
if(fliped)
ans.push_back(ii(idb[y],ida[x]));
else
ans.push_back(ii(ida[x],idb[y]));
s1 = s1 - a[x] + b[y];
s2 = s2 + a[x] - b[y];
}
// printf("x,y = %d %d\n",x,y);
a.erase(move(a,x));
ida.erase(move(ida,x));
b.erase(move(b,y));
idb.erase(move(idb,y));
}
开发者ID:giusevtr,项目名称:problemsolving,代码行数:59,代码来源:D.cpp
示例18: main
int main(){
int tc, n, g, u, v;
cin >> tc;
while (tc--){
cin >> n >> g;
AdjList.assign(n, vi());
for (int i = 0; i < g; ++i){
cin >> u >> v;
--u; --v;
AdjList[u].push_back(v);
}
if (n == 0){
cout << 0 << endl;
continue;
}
dfs_num.assign(n, DFS_WHITE);
dfs_low.assign(n, 0);
visited.assign(n, 0);
scc_weight.assign(n, 0);
scc_id.assign(n, -1);
dfsCounter = numSCC = 0;
for (int i = 0; i < n; i++)
if (dfs_num[i] == DFS_WHITE)
tarjanSCC(i);
SccAdj.assign(numSCC, vi());
for (int u = 0; u < n; ++u)
for (auto &v : AdjList[u])
if (scc_id[v] != scc_id[u])
SccAdj[scc_id[u]].push_back(scc_id[v]);
dfs_num.assign(numSCC, DFS_WHITE);
topoSort.clear();
for (int i = 0; i < numSCC; i++)
if (dfs_num[i] == DFS_WHITE)
dfs(i);
vi dist(numSCC, 0);
int best = 1;
for (int u = topoSort.size() - 1; u >= 0; --u){
dist[topoSort[u]] = min(dist[topoSort[u]], scc_weight[topoSort[u]]);
best = min(best, dist[topoSort[u]]);
for (auto &v : SccAdj[topoSort[u]]){
dist[v] = min(dist[v], dist[topoSort[u]] + scc_weight[v]);
best = min(best, dist[v]);
}
}
cout << -best << endl;
}
}
开发者ID:andresvrl,项目名称:Competitive_Programming,代码行数:53,代码来源:11324+-+The+Largest+Clique.cpp
示例19: main
int main(){
int t, n, i,j, x,y;
scanf("%d", &t);
while(t--){
scanf("%d", &n);
ps.clear();
for(i=0; i<n; i++){ scanf("%d", &x); ps.push_back(ii(x,-1)); }
for(i=0; i<n; i++){ scanf("%d", &x); ps[i].second=x; }
sort(ps.begin(), ps.end());
ys.clear();
for(i=0; i<n; i++) ys.push_back(ps[i].second);
printf("%d\n", LIS_Len(ys));
}
return 0;
}
开发者ID:ABHINAVKR,项目名称:ACM,代码行数:16,代码来源:BRIDGE.cpp
示例20: main
int main()
{
int test;
scanf("%d", &test);
for(int te=1;te<=test;te++)
{
grip.clear();
data.clear();
scanf("%d %d", &n, &m);
for(int i=0;i<n;i++)
{
string x;
cin>>x;
grip.push_back(x);
}
getGraph();
sol(piii(pii(data[0].first, data[0].second),0));
int pos=-1;
for(int i=0;i<4;i++)
if(d[data[1].first][data[1].second][i] !=-1)
{
pos=i;
break;
}
if(pos>=0)
printf("Case #%d: %d\n", te,d[data[1].first][data[1].second][pos]);
else
printf("Case #%d: impossible\n", te);
}
}
开发者ID:RodolfoQuispeC,项目名称:CPproblemsSolved,代码行数:30,代码来源:LaserMaze.cpp
注:本文中的vii类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论