n<=100000個操作:新增乙個不等式ax+b>c,刪除乙個不等式,查詢當x=k時有多少不等式組滿足要求,abs(k)<=1e6。
按a的正負來分情況,然後樹狀陣列維護即可。
a=0:b>c就全部+1否則不理,注意不要忘了把他扔進陣列裡!!!!!
a>0:x>(c-b)/a,把它向上取整,並且在-1e6,1e6範圍內加一,這麼寫:min((int)max(floor((double)(z-y)/x+1),-fix+1.0),fix)+fix,fix=1e6+一點
a<0:x
因為忘了把a=0時的情況扔進記不等式的陣列裡而wa了3次。。。。。。
很好。
1 #include2 #includeview code3 #include4
//#include
5 #include6 #include7
//#include
8using
namespace
std;910
intn;
11#define maxn 100011
12#define maxm 2000011
13const
int fix=1e6+3;14
struct
bit15
18void add(int x,int v)
19int query(int x)
20}t;
21int line[maxn],li=0;bool vis[maxn];int
ty[maxn];
22int x,y,z;char s[11
];23
const
double eps=1e-9;24
intmain()
2537 ty[li]=-1;38
}39else
4046
//assert(line[li]>=1 && line[li]<=t.n);47}
48else
if (s[0]=='d'
)4959}
60else
if (s[0]=='q'
)6164 printf("
%d\n
",t.query(x+fix));65}
66}67return0;
68 }
bzoj 2762 樹狀陣列
題意 給出一些形如 ax b 1 新加入乙個不等式 2 刪除乙個不等式 3 詢問當x k時滿足的不等式的個數 對於每乙個不等式,通過變形就可以得到使它成立的x的範圍 那麼就變成區間修改,單點查詢,樹狀陣列維護就好 注意 1 討論a 0 a 0 a 0的情況 2 由於k有非正數,所以要加上10 6 1...
BZOJ 2764 JLOI2011 基因補全
題目 題意 給定乙個長度為n的鹼基序列s和乙個長度為m的鹼基序列t,現在希望向序列t裡補一定的鹼基使得序列s和序列t配對,配對的規則是a與t配對,c與g配對,新增鹼基的位置與數量不同的方案視為不同,求不同的方案數。0n 2000 題解 可以考慮算出序列t在序列s裡匹配的本質不同方案數,利用dp可以很...
BZOJ3192 JLOI2013 刪除物品
原題位址 自己想的奇葩做法 對於乙個優先順序為x的物品,考察該物品下方優先順序大於x物品的優先順序被分成了多少個連續段 舉個例子,如x 4,該物品下方物品的優先順序有5,6,7,9,10,13,14,19,則段數為4 則該物品需要被移動的次數k 段數 2 優先順序為x 1的物品在該物品下方?1 0 ...