BUG:
vector<int>f;
for(int i=0;i<=f.size()-1;++i)
那么当f.size() == 0的时候就跪了
因为f.size()是unsigned 没有 -1
#include <iostream> #include <cstdio> #include <set> #include <cstring> #include <map> #include <string> #include <vector> #include <algorithm> #include <cmath> #include <queue> #define VI vector<int> #define PB push_back #define ll(x) (1<<x) #define FOR(i,a,b) for(int i=a;i<=b;++i) #define DWN(i,a,b) for(int i=a;i>=b;--i) #define clr(f,z) memset(f,z,sizeof(f)) using namespace std; const int mm = 7009; int d[mm],l[mm],r[mm],x[mm],vis[mm]; VI level[mm]; int main() { d[0] = 0; FOR(i,1,mm-1)///i 对应右下一层的值 { d[i] = d[i-1] + 1; if(i&(i-1) == 0) ++d[i]; } int n,m; while(cin>>n>>m) { int res = 0,typ,id; clr(vis,0); FOR(i,1,m) { cin>>typ; if(typ == 1) { cin>>id>>l[i]>>r[i]>>x[i]; level[id].PB(i); } else { int t,v,ll,rr,ans; cin>>t>>v; // puts("uuu"); ++res; ans = 0; ll = rr = v; FOR(j,t,n) for(int k=0;k<=(level[j].size()-1);++k) //FOR(k,0,(level[j].size()-1) ) { cout<<level[j].size()<<endl; cout<<j<<"_"<<k<<endl; //cout<<level[j][k]<<endl; } // if(ll>r[ level[j][k] ] || rr < l[ level[j][k] ]) // {puts("---"); continue;} // else // { puts("ooo"); // if(vis[ x[ level[j][k] ] ] != res) // { // vis[ x[ level[j][k] ] ] = res; // ++ans; // } // puts("+++"); // ll = d[ll-1] + 1; // rr = d[rr]; // } cout<<ans<<endl; } } } return 0; } /** 4 5 1 4 4 7 1 1 3 1 2 2 2 1 1 2 4 1 2 3 3 */