Apple Tree
Time Limit: 2000MS   Memory Limit: 65536K
Total Submissions: 27092   Accepted: 8033

Description

There is an apple tree outside of kaka's house. Every autumn, a lot of apples will grow in the tree. Kaka likes apple very much, so he has been carefully nurturing the big apple tree.

The tree has N forks which are connected by branches. Kaka numbers the forks by 1 to N and the root is always numbered by 1. Apples will grow on the forks and two apple won't grow on the same fork. kaka wants to know how many apples are there in a sub-tree, for his study of the produce ability of the apple tree.

The trouble is that a new apple may grow on an empty fork some time and kaka may pick an apple from the tree for his dessert. Can you help kaka?

Input

The first line contains an integer N (N ≤ 100,000) , which is the number of the forks in the tree.
The following N - 1 lines each contain two integers u and v, which means fork u and fork v are connected by a branch.
The next line contains an integer M (M ≤ 100,000).
The following M lines each contain a message which is either
"C x" which means the existence of the apple on fork x has been changed. i.e. if there is an apple on the fork, then Kaka pick it; otherwise a new apple has grown on the empty fork.
or
"Q x" which means an inquiry for the number of apples in the sub-tree above the fork x, including the apple (if exists) on the fork x
Note the tree is full of apples at the beginning

Output

For every inquiry, output the correspond answer per line.

Sample Input

  1. 3
  2. 1 2
  3. 1 3
  4. 3
  5. Q 1
  6. C 2
  7. Q 1

Sample Output

  1. 3
  2. 2

Source

POJ Monthly--2007.08.05, Huang, Jinsong
题意:
一棵苹果树,每个节点最多结一个苹果,最初每个节点都有一个苹果,非二叉树,有两种操作,Q X,表示X节点的子树共有几个苹果,C X,表示X节点摘掉一个苹果或长出一个苹果(有就摘,没有就长)
aaarticlea/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQkUDQsNFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT/wAARCADHAagDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD9U6KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACkzzS01qAPN/EHxJ1yfxvceHfCOh2utyaO0D6413eG2aGOVdyLCNpEjlfmwSq4BGckCusHjbQ08UR+Gn1KBdfe3+1Lp5fMpj/vY/CuW8beDPCniDxHbX97rsujX9uV+0x2OpfZTdoPmRJwCCwBwR0PbOOK4u48MB/2gl8WJrWinQWtYiSbxAyyIpTb5X8T9CJdw2g7dp60x2Pegc0tYy+LtCUEf2zYD63KD+tKPGGhEZ/tiw/8CU/xpBY2KKy4fFOjXMyRQ6rZSyuQqolwhZiegAzzWmDmgQtFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFITigBaQnFJvGcZ5+tYfiTxxofhNFOq6nBZswJWJ3+dsdcKOT1oA3C4H86aWBIHfHFeeS/EXX/EgEfg/wvNc5POoa4zWNoq4yCDtZ3z22IRnqV60r/DfWfEgYeLPFVzeWz/f0/RlbT4MY6FlYynBPUOOmcDpQM474ReCdA8UXnxHutX0ax1S4TxjfxpNdQK7BAkW1QSOg9K9A/4VN4K/6FXSf/ANOf0ry74TeNvCfwlsPiFp+talaeH7a18VahNDDOduICIiHH97JJOeSSTnJzXo8Xxp8DTRo6+JrLbIAwy5Bxj6VaLWx454w+KHwy8Bpq6a14A0zTruwmMUMdw9lGjnBKCSQuEgZ8fKrkEj8cex6T8NfBGr6VZ3y+E9HRbmFJgogikC7gDjcuVP1BIrza4/4V9q+qQa5L8TXu9WtizaZf8AmRN9liJyUA2bZBnuwPQeldl4P+IHw38EeHLHw7pvieyFrp8IRUaXLgEk7mGO5JPTHNNXuBi/HH4feGPD/wAMtQv9N8P6bY3sN3YmOeC3VHQm7hGQRz0J/OvcEGBXhXxq+JXhbxP8Ob7S9K1u11DUbi7sVitoSWdyLuFsAAein8q91U5FQyWOooopEhRRRQAUUUUAFFFFABRRRQAUUUlAC0UUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUhOKAFopu8ZxTJrqK3heWWRYo0G5nchQo9ST0oAkzQWrz69+NGkz39zYeHrDUfFt5bSGKY6Rbl4InBwyNOcRhhxld2eQcYqFtI+Ivi0gX2r2HgzTmBDQ6Qn2u+IOCD50o8uJhjBAjlBBOGHFMZ2+r+ItM0C2a41K/t7CBQSXuJAg9e9cVcfFe41uRo/CHh+88QIAduov/AKPZZBwcSNy/1UEe/WtHRvhD4a0mYXM1iNX1E4L32qMbmZ3zndlshTn+6B6dK7FIhEgVAEUdFAwBSA8/m8HeMPFK41vxL/YsHRrTw+pUkcHPnOMg544GK3PDfw28P+FJJJtP09PtchzJd3LtPMx7ne5JGTzgYGSeK6cDFLQIYEx0NH3fenE4rjviBr1zEttoWkMDrmq5jiOM/Z4uBJM2DnAyB9SKAMG7srT4o+M5oPsdvP4e0S4Md7JLGpa7vUClYypH3EDA7u5wOnNbXxKv7HwX4D1rVo7S0imt7crAzQKVErkJFkY6b2XPtmuj8P6FbeG9HtNNsgVtraNY1Lcs2B95jjlj1J7k1xnxkjbVLXw7oWBImp6rCs8JHyvAp3Pn2DbD68Uxmr8O/A1n4T8C6Ho8un2kc1raqJ0ijBQTH5pNvHQuzEDtmsDw1ounr8YfF5FhbD/RrYZ8legReOnvXpoNcB4dO74yeLCM4FlaqfrtyT+RH5UAdsmlWcbK0drAjKcqwjGVPt6VbAIHNApaQgooooAKKKKACiiigAooooAKKKKAEJwcVDPfQWphEs0cZmbZHvYDe2C2BnqcAnHoD6Vw/jzxdrcfiSx8K+F1sU126tHvjcaoH+zpCrBCMLyzEnoOw561w/7SWvXFp8EbHVb++sfDepieC4+2TBbm3s51Rn3g5DOFIJATLPgIAQxoA9qttZsL2RI7e8t55HTeqxSqxK4U5AB5GHU/8CHqKnW7ha5e3EqGdFDvGGG5VJIBI64ODg+xr88Pg9Z+MdKHg2PS/GFv/wAJUdM0nSLOG10+2uYI0klCX6rMr/O6W9i8megEKLgHr2PxN8Yarbn432cfiOyvoksJzNdWdrcLeGWK22CCUqf3MSD5wUILybwozk0AfcCTpIMowceqnIp4Oa+WP2TJTH8V/iHaxMUtE0XRJEgU3YjDtLqIdgtySwJ2rkjg7R36/Uy9KAHUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUhOKWmnrQAhlVWAJAJ6DPWl3A9Oa8J8b2sTfFbd4ltdeup2vbVvC0mitKscKBY/P8zaQmd4lLeZnKHAwerPCXxpu/E/7Uet+EpBe2OmWejuILK4tJEEssN00clx5hXaVYMm3BJIHTg0Ae9daWm7setBcD6etAC0FgK5vxH8RPD/hZCb7UEMudotrcGWZjxkBFyT1B6dK59PF/i/xTvXQ/Dn9k2rAKL7XHMZBPUrEuSeCMZI5yO1AHoTSKgJPQDNcbq/xf8L6XOLePURqV42AtrpqG4kYnoAEyOeg+orPb4V33iFg3ivxNfatCcFrCzP2S2PfB2fORkKeGHSuy0jw7pugQeTpmnWmnQ8/u7SFY19+FA60xnEDWfiF4vYDTNIs/B2nt/wAvmtt9quz3UrbRnaAw4O+RWXnKnpUknwR0fXSZPFd5f+L2Yktb6nORZnP3lNsmI3Q8ZWQOOB759EC0opCuVdO0y20iygs7G2hs7OBBHDb26BI40HRVUAAAeg4FWlGBilooAKKKKACkJwaWmOcflmgDO8R6/a+GtHutSvGZYLdNxC/eY9Aq+5JAHuawPAfh263y+JNajC6/qCYaPBH2WDOUgA7YGN3qRVC3RPiT4pNzKTL4c0adTbIBmO7u1Y/vN2eVjI4HTdznjn0BelAwyF6157q841X43aJp4Vj/AGdpMuoOJB8h3yeUhX/aBDdex9q9Bc//AK689+HO7WfGvjrXZGYk3qaVDG3Kxpbg52n/AG2kLEdKBHoQBA/wrgPDv/JY/FgPBNnasOf4duB+oNegdPrXn/h7j4x+LMjk2Vrg/wCzt4/XdQB6CKWkFLQAUUUUAFFFFABRRRQAUUUUAFFFFAHN+N/h9o/xAsYrbVop/wB0xaKe0uZLeaPI5CyRkMAeMjODgZ6Csb4gfCyPxZ8P4PCGlT2ug6YpiiJS0ErQQJ0+z8gRTKQrJLhtjKDtNd7RQB4ro/7OLaJYS3MHiWUeKYLl7rTdZS1EYhYlt3mxKwExkDESkkbhjaE2ptd42/ZotviDFdS6r4y8R2uo3nyXM+l3KQRtCY2R4BCVZChLlwXDODjDcV7RRQB5v4C+DTeCPGep+J5/F2veItR1Gwh06ddUkiMZjikkeIgJGpBUzTYOf+Wh9sejgYpaKACiiigAooooAKKKKACiiigAooooAKKKKACmsM0pOKZJOkUbO7BEUZLMcAD3oA8rvb/xx4l+IXiXS9C8Q6XomnaULZUS50prqSRpIg7MW81ABzgDFKPBnxGW9N2PGnh77YYxEbj/AIRk+YUByE3faM4yx49z6074aa/p3iH4l/EW50y9hv7ZJrOJpbdtyh1tlyM9/wAK9KyO/HTvVpFpHm8/hr4rCCTyfHmhNNtPliTw44UtjjJFx06dB61y+q/Cn4t+LLbT/wC2/ifpVqY4iLmw0zQnWCSQ/wAXmfaFcgDIA4HPIrP8ZQapd698VLS3k1h7eW80aSRUkkWMWmIluBAykFRtWTcEIPPWvSPg3bXFp4ISOZbpLUXU32FLyR3kW13nyQS5LH5cY3EmhIehzmhfCrxn4dbdp/inw3av/FNH4aYysPQu1yWP4muz+DnibUfGfww8Oa1qxgbU720SW4a2QpGX7lVJJAPXGTiupGOfcVwX7On/ACRLwh/14pSZLPRgMUtFFSSFFFFABRRRQAUUUhbFAATiuJ8e67d3d7b+FNEcLrN+okmm3FfsdnvCyzDjl+cKOMnntW/4p8R23hbRLnUrpZHihAxFCu6SRiQAir3JOBj3rH+H3hi60y2vNW1dYv8AhIdWk868aIkiNRny4VJycIp/76Lc9KAOg0TRrfQNHtNNs12W1rGIkB6kDufUnqT3JzV9cgc0AYFBOKAKesXw0zSry8Yqq28DykucL8qk8+3Fcp8GLFrP4d6ZIyusl1vum3997Egj2IwR9ab8adSksvh1qkNvse8vtllbxSdHeRwpA99pY57YrrtH06LR9Js7CAsYLWFIIy5y21QFGffAoAtY7V5/4dI/4XD4tC8/6Lakk9m2jj8sc+9egnrXn3hw/wDF4/F2Dx9ltRj32CgD0EUtIKWgAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKazhepxXHWHxl8EanDrs1r4m0+aHQ8/2jIJcLb4zkknqODyMjigDs6KqaTq1nrumW2oafcx3dlcxiWGeI5V1IyCDVugAopCQOtIXA7GgBc0yWZIVLOQqgElicAD3NcXqXxTsJNTk0rw/azeJ9UjwJU08jyYM5x5kx+Reh4yTx0qCL4fal4mmF14v1U3iZJXSNOkeG0QZ4DMMNLjHVsDkggigCzqHxHhvr6bS/DEC6/q0XEm19ttB82CJZcEKeDwASaqj4b3nihhL4x1ZtViHTS7QGGz7csB8znjuQMEggiu007S7bSLSO1sbeGzto12pFAgRVA6YA4q0oIHNAHmknw117QvFGr6l4W1aw0uy1JIA1lJZjbCY02ApjsQBxVn+wPiKMD/hJdL/8AzXolc38QfEzeE/C15e26rJqDL5NjC+SJbl+IlI9N3J9ACe1O402ed+H7v4k+IfEuuWtv4g0f+zNNZLb7QLM7pLjG6Qem1dwH1z1GKb4vvPiV4a1PwnbR67pNwNa1ddOkZrQjyl+zTzF19/3IGP9o16V4E8Np4U8K6fpylnmRN9xNJgvLM3zSOxHcsSfT04xXM/FnA8Q/DAEA/8AFUrwTj/lwvaLhckTQfiIGyfEelMM9DZnkelbnw18Ht4A8CaL4ee6+3Pp9uIWuNu3zCO+O1dKvelouFwooopCCiikJxQAtFN3jHHP0pQd2fyoAWo5XWMFmYKAMkk8D608sB14rhvHN5P4i1W28JafM0X2hfN1S5iwxt7bnCkZ4MhBUegyfqAVrCP/AIWJ4v8A7SlzJ4d0d1NgCo8u6uupnVupCY2gdCSx7CvQVJI5qrpWl22i6ba6fYwpbWVrEsEMMf3URQFVR9AAKt0ALSHPalpCaAPPfiWV1TxP4J0M8m51Brxs9CkCbiM9idw/I16EvSvMLDUh4l/aC1WGGbfb+GdHihnt5ExsuLlvMjkQ9wYkdT7jFenjpQAGvPvDzH/hcXizdwfsVrgeq7euPrkfhXoJrz7w8MfGLxZznNpan6fL939M/jQB6CKWkFLQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAZXinR38QeHtR01JzbPdQNEJRn5SR6AjNePx2XxAtvBuoWlr4A0m31bR9MXT9NuHu4JJL9gy/PEekUZC7ismDvK8HGT61401mfw94U1XU7VI5bm1tnliSXIQsBxnHOM1yNinj3xHpOmalBrGk6at1aRTtAtuZAGZQxwSPf9KAN74W6QdD8B6VZvo9xoUyq8k1jdXKXMqSvIzyM8sZKuzuzOSOMueB0HUlgK88/sP4iAf8jPpf0+xf8A1qw/EHgX4j+JnsgnxDj0y1t5S00WmWqRtckEYUykEqAQcheucEjFOw7HZ+IPiXpWjXkmn2qz61rCj/kH6anmyAnoHI4QcjJJ4BycDmse38I+IPHMTXHivULjS7Gfp4f06YKI0y3yy3CHLsQVJ2EYK8E5NU9L8D+MdCilTTNW0PT45ZDK62+nhdzE5JJ6t9Tk89avfD/W/EcnjHxHoWvXlnqH2BLeWCe2h8psOmWDDvzQB2mjaDp/h6wSy0yygsLSMkrDbxhFyTknA7nqT1PfNX1GBQowKWkIKKKKAELBetee6on/AAmHxWsbNcSaf4diNzcq2drXUi/uhjuVQ7uf+egIPBB6vxb4ms/B3h2/1m/LfZbOIyMsYy8h6KiDu7MVVR3LAVgfCHw/qGjeDre51tI18RamxvtTMROzz35IXPIUDAA7YxQB2yjArzr4tAHxD8MM4H/FUr1/7B97XooGBXnHxdONf+GHJH/FVL0/68L2gD0deBS0lLQAUUUUAFcv8Tjr6/D7xCfCuD4kFjKdPBAI8/adnXjrXUV5J8QLa+8RfGzwv4dXXtU0jS5fD2qX8sOmSpH5ssdzYIjMWVs4WaQYGPvUDRw0mu6T4M+EHxB1L4YXWu315a2cUkn2+eSVBeHeJNjz5CT4KmQfdX92cDPPpfwC8TDxD4C8l5dWnvdLunsrubWbuG8meXasuVuIQI5k2yqAydMFTyppZ/hGl2rpN4x8VSo42ur3sRBUg5BzF0OTxWRp3wn0Dw55eg2PjLXNM+zWxuF021u4IVhhDfM4jWIBV3HnAAyT3zTsOx6H4v8AE0HhXRJr6UGWXKxW9ugJeeZztjjUDnJbH0GSeAaz/APhibQdMkvNSbzte1FvtN/IcHY5/wCWSED7kY+VcDnGepNcND8FNG8V3Wk+I4PHXirUIYYnNlLFqaGL58fvVAQDdgFQ3oxpNf8AC954K8V+Cri08V+IrxLrVBBNbXl3G8MqFG4ZRGCRnngjmgR7KOlLSKMClpCCmt1FOrn/AB9qn9i+DNavQpcw2kjbVfYT8p6HsaAOI/Z8055dG8TeJZJPObxJr13qEQfmWGEEQpAxx/AYnwBwN3HU16sBtGK574daUdD8C6DZMMSRWcXmfLtJcqC5I9SxJPua6KgBD1rz7w5/yWLxcMY/0W1zx/sDnP6fhXoB61wHh/I+MXivcQT9itdp64XHT89x/GgD0AdKWkFLQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAct8UCB8PtfB4/0R/5VL4KP/FFeHf+wbb9f+ua1X+K08Nv8OvETzzLbx/YpB5jqzKDg4yF5xnGcV534Zg+O9n4b0q3+xfD2LybWKMRyz3wZQEAwfk6+vvTTsNOx6/eYNpOCruDG2Uj+8wx0HvXl/wRguY9T8WzLa6lZ6LNcQfYotShMLKQhEo2Ekk7sEvnDbvanMfjuQc2vw6PH/Pxf4/9ArK0/wAXfGXV/EWtaFb2fgEX2kpA1y0lxfbGEwZlA+TPRTn8OtO5XMe0ZA64ya4Pwrn/AIXR4zPb7HZAc/7BrIz8eD/y7fDof9vF/wD/ABFbHwz8K+MLDxBr2ueMn0MX1+Io4odCaZolRFxljKAd304xihsTdz0YdKWkHTmlqSQprNt7E/SnVU1TUbfSLC5vruUQ2ttE00sjdERQSzfgAaAOG8WEeLviJofh8jztO09P7WvUH3WdWxArf8C+bB9Aewr0JDketcL8KLC4k0i71+/jZNS1uc3cjPw3ldIRjsAmAB6Y713a0ALXnPxa/wCRg+GHGf8AiqV74/5h97Xo1ec/Fv8A5GD4YY4/4qle2f8AlwvaAPRQc0tIvFLQAUUUUAFeXa5/yct4SwMn/hEtZ6Dp/pmmV6jXE+NPhrD4p8TaX4gh1a/0jVdPtLixjls5dqtDM8LurDv80EeD2waaGjrCDx6cV55qHhPVpvjRN4gi022bSW8NSaabrzgJXmacOEZf7oCnn1k+tYHjTw1rukpaaXpXjfWLjxDqEgjto96t5CE4e5dT/wAs4xkkHG44UHJFXfFHgXXvD/gvU9QTx5rU17Z2LyiViAHkVCdxXoMkdKdx3Oi+DPh7UvCnwv0DRtWsIdO1CzhaKW2tn8yKP52wFbuMEVV+J/GveAP+w0nU/wCw1UPDPgHWtV8N6XezeOtbae5tY5nbcFyzKCeBwOtaNv8ACSaTXNI1HUfFGraoumXBuYrWaXETvtKguO+M5HuKTEz0QHNLSClpCCvPvjJm/wBH0jRFVpP7X1O3tZUQ4cwht7kHtgLnPYZNegV594ikOufFjw5pgIaLTYJdSkAOCrcxqf8Ax4D/AIEaBo7+PG3jp6U+moMD8adQIQ1594dCj4xeLQvObS1Lf720ZHvxt59zXoJrz7w8CPjF4tzxmztWGeMjaBn8wR+FAHoIpaSloAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAornvGnj/QPh7pyX3iDUU062kfYjFGkZjjJwqAsQAMk4wB1xWvaarZ38du9tdQ3C3EQnhMUgbzIyAQ64PKnI5HHNAFqkLAHBoBzWJ4y8UW3g7w/d6rdElIVwkSjc0shOERVHJJJAwKAOU8Rp/wALA+IFnoOSdF0PZqWofLkS3Gf9HhPsMGQ9c7QpGGr0Zelcx4B8NXHh3Q2F8ySateTPd30iElWlcjgE9lUIg9kFdOBgUABGTXm/gsf8Xp+JX/XHSu//AEylr0jvXnHgr/ktPxL/AOuOlf8AoqWgD0iiikLYoAWim7vY/lTqAEJxXnvxMJ8S6toHhJCWt7+U3WoIhw32aIg7Wx0Vn2jnghSK726uI7WGSWZhHEiF3duAqgckmuC+FFnLrSal4yvQ4vdblJgSTj7PaJxFEB27sexZiR1oA9AjUIgVQqqvAVRgCnCgDFLQAV5x8XMf8JB8MM4/5GlcZ/68L2vR684+LgJ8QfC/HX/hKl6/9eF7QB6MOntS0g6UFgPqaAFopu4f0oDg0AKTisDxp4vtfB2krdzpJcTTTR2ttawjLzzSOEjQemWYZboByava9rtn4c0ua/vpfKgjwOBlnY8KqgclicAAdTXPeFtButU1OTxHriMLx3b7BaueLOAgbQV6CX72489SBxnIBZ8GeEZdFlv9U1GZLzXdSk8y4nHzCNRwsMZIB8tccDA5JJ6074l5Hw78SgnP/Evn/wDQDXTgYFcz8Tj/AMW88S/9g6f/ANANAFjwISPBOgf9eEH/AKLWt4HNYPgU48E6B/14Qf8Aota3DIqKSxCgckntQA+iqem6vZazYRX2n3cF9ZTDdFc20iyRyDOMqwODz6VbBzQAhrzvwO6+IviR401tWEsFlJHosBK7WR41Dzj3BLR4P+ya76+uo7G1muJSRHChkYjqABk/pXFfBSzePwJFezLGLrU7q41CZkByzSSsQWJ6tt2j2wBzjNAHeL0paSloAQ1594dG34xeLOdwNpanjt8uNv6Z44+avQDxXn/h3afjD4t2ggC0tQx6/NtHI9BjAx6g0AegilppYL14oLgUAOopAQelLQAUUUmecd6AFooooAKKKKACiiigAooooAKKKKACiiigDzP4h6F4j0/xlpfizw5psHiOaCym02bR7q6FsAsjK3no7AjcuzaRjJV2xWD4S0C90f48pPL4duLRH8KwWV1qNhDs0vz45FIiiBfKhRuCjaOMZJxXc/Ebxtd+Do9GjsNL/ta91W+WxhhMwhVWKs25mPb5ayv+Eq+IOf8AkR7T1/5C8f8A8TQB6GDwefyrzm6hPxC+JkcJfd4f8Lus8iq+VudQIPlhgOohXL4P8bRkdOSfxV8RhBJ5PgeyM207N+sJt3Y4z8vTP/6qw/As3xE8K+HLezuPBdjPqEjPcXtymrx4mnclnb7oJGTgZ6KFHanYZ7Enyg59eKd1ry/V/iD440HS7vUbzwTbfZbWMzSiPV0LFR1wNp5r0TRNRTWNHsb+NDHHdwJOqt1AZQwB/OgC53rzjwV/yWn4l/8AXHSv/RUtej96848Ff8lp+Jf/AFx0r/0VLSEejivKfjrrd9YP4c06TWZvCvhbUZpo9Y8Q20vky2gVAYo1lIIh8xiQZDjAHUEivVs4rz3xf8QbdddvPDQ8Kah4lWO2SW7ENukkChycIwbqcDPTHI96AOB+H/xF1S2+KWj+F4fFA8U+Hbu3uI4r67hVC5gXcPKmAzcS4ZfMyAoGGUndge/g7R/hXj2nanZaRrsms2Xwr1S01N4VtzcQ2yKRGucKADgdcZAzit4/FLVR/wAyJr4/7Zr/AI07DsWPitePe2Wl+HLZ2W41y7W2k8s4kS2A3TOv0G0Z/wBuu2sbWKytIreBBFBCojjRRgKoGABXimleLPENz431LxBqngPX18lfselwgIwSHgvKcHhnOOOwFdcPijqo4/4QTX+v/PJf8aB2PQ6K5PwR8QE8ZXeq2j6TfaNe6c6JLb3yBXIZQysME8EGuspEi15z8WzjxD8L+SP+KpXocf8AMPva9Grzj4tnHiH4XkjP/FUr2z/y4XtAHoq8AV5J8a9XkHiLw7oep6/c+D/CF9Bcy3uvWl39jkFxGYvJt/tGQIg4aVs8Z8rbnnB9b6DH8q8t1/4laf4h1vxH4ZXwbqHiePRbuK0vlNqktv5rQRXCjDZzhJo+o6n2zQBzdp8WPFVn8QfBOjhrW98E6vp1u0fiq+sZI5NSuXR2MaBCqwOVRXCsmMbumMV7lNOlvE8sjiONQWZ3O0KB1JJ6cV41qt7HrXi2w8RXfgLxNJf2QHlx7v3BZd2xzGWwWTfJhsfxt61Prfjy/wDFM/8AZt98OPEFxo4CytMJYwkzhs+UyBslcgHng4xinYdjf8MCf4k6pbeKbyKa10exnl/sa1cFDN96M3UqnqGBPlg9FO7qRj0NOFwa87T4n6nGgVPAevqoHAEKgAdh1rQ8HfExPFfiTUtCm0XUtG1Cxtobt0vowoeOVnVSpB55jbIoCx21cx8Tj/xbzxL/ANg6f/0A10wORXM/E4/8W88S/wDYOn/9ANIRY8CnHgnQP+vCD/0WtYfxm8Oan4q8DXFlpcYu386KS405pfJGoWyuGmtd/wDD5qApk8c84rc8CnHgnQP+vCD/ANFrUXjvxlb+BdB/tO4tri9LzxW0VtagGSWSRwiKMkDqf/10xngXxV1G41r4aLJoGj+JfhRfaxren6Np11FKmn3BuJ5DEsk0Kbh5SNJkrkF+emM19L6dajT7C2tRLNOIY1j824ffI+ABuZj1Y4yT3Nef3HxGvrsIJ/h9rkwjdZFEkKMFdTlWGT1B6HtUw+KWrDj/AIQTxB/37X/GgLGj8YNZ/sH4beIL7Y7+XbHiN9jc8cH8a3vCulHQfDWlaYzI72VrFbs8a7VYqgBIHpkV5D8QvFGv+Lp/DVrH4D18adb6pHfXsqhAwWH50TaT86uw2MOwPeuv/wCFo6qB/wAiJr57/wCrX/GiwWPRKK5P4d/EOz+Ithqs9raXdhLpmoy6ZdW95HsdJowpYe4w6811lIQh61594eJPxi8WZxkWdqoA4+XbkfqTXoJrz7w+R/wuLxYF72lqWyejbRxj0xj9aAIfjp4j1Tw54UsW0+4fTbG71CO01XWYgC+l2bI5e5UHIyGEaZIO3zN3bI81ufjc3w2l8PabperP408NTXZt013UHkuJLp2mMX2SKeNSpki4Yyy/KykKCWyR6n4i+JiWniC/0C18Oanr728Km7NrErRrvGQhyeSVOfTFcR4g146qdKs5Php4rj0vS5N0Wn2ISGzmxgqHiUgMqlQVBGAadhnuinj1pc15YPjRrXI/4Vr4nJHUCOPI/DdR/wALn1r/AKJp4o/78x//ABVIR6nkUY5z36V5s/xinsrrTk1HwfrmnQ3t1FZi4mjXZG8hwpbngZ616SpzmgA6UtFFABRRRQAUUUUAFJnBxRnnFeU/GT9oDR/gve2Ca3HaJaXjWqJcT6pBblTLeQ2zEpIwbagmEhcZG2NwduMkA9VDhhkdKUHNeM/Df9qTwX4/vL61uNa0PRLqK6S1gtrjXbSWW4dhkKFVz83IUhSw3ZALYzU97+0jpem6Do183h/WdTvdc1BrPS9G0hI7i+uItlxIlwyM6BI2S1nYEtj5eCewB7BRXL/Dj4gWnxL8N/2xaafqOlBbma0msdVhWK5glico6OqswBDKehNdRQB5d8YtStLbxZ8MrOW4SO7uvEC+RC33pNkErPj6DmvR8N6H9a8b+N3geDxv8W/hQkt/eabPp9xf3dvcWMmx1f7My/lgmuk/4VZqGf8Ake/En/gSKtFoh8caxPpnxf8Ah1bLqN9Ba3v26Kayihke3mIhyjOwUqpVsYyR96vRgrehrzuX4Z3kGzzPH3iBBIwRRJdABmPQc9/QDrTx8LNQH/M9+JT9bkUahqbvxK+X4feIScj/AEN/5VoeAyB4I8P9B/xLrf8A9FLXmXxE+GOoQ+AvEMg8c+Iyy2UmCbkHB2nB/CrnhL4Y383hLQ5B448RRB7C3IRLngfulpCPXc815x4LP/F6fiV2/c6V/wCipaafhZqJ6ePPEmf+vgGsPRvhTZz69rl/pnxJ1281CRo7e/WDUEkMLRg7VdV+6cMeDzSsKx7LkVwGhMT8YvFfU/8AEvsiM9P+Wn+NVR8LNQx/yPniT8LkVxfh/wCG1/J8WPGEI8ceJAqWtn1uRwdhJbOO/p7U7WHax7t83uaxvGMkcfhnUWuJ7u1hWEs81mGMqAckgL8x4B6Zrlv+FWah/wBD34k5/wCnkVW1PwA+i2M19qHxG1yws4F3S3N1fLFFGPVmbAFMZL8Bb6/vvAkz3TXj266ldR2D3cLxlrQSEQlQ4D7NuMF/m9a9Gy3P3vXoa87h+GV7cQpNF4+8QyQyKGR47lSrKRwQR2NP/wCFW6hx/wAV14k9/wDSB/hQBJ4JI/4Wv8QvXzLLP/gOteig18/+D/hvqMvxL8ewN468RkRPZgZnA/5YA5yB7123/CrNQ5/4rzxL/wCBIpWFY9KzXnXxaVn8Q/DDaCceKVY7RngWF7mon+GN7GjM/j3xGqgFizXQAAHrWZqfwRHiSTSLu48c+I7g6ddC/s5I7wYWXynjDZHUbZX496VhWPWz/TvXk/wmJ/4Wj8bsZ/5GOz/9M+n1oj4WagX48d+JADgAC5HH6V538Nfh3eXXxD+LsSeL9et2g1+0DSR3GDKf7IseW9T/AICiw7HsfxH0KTxT8PfE+jJNdW76hplzarLZ/wCvQvGyho8/xDPHuBXLfA231Gz0jVLa806aztUuF+zXE9sbWS4G0biYskDBGMjrVn/hVt+M58d+JOAeTdcVlaH4asfE/n/2L8VtS1gQcS/YNUim8v8A3tpOPxpgergsQeCK890Y/wDGQvijnj/hHdN/9H3dL/wq2/5x478Sf+BNcFp3w4v3+PXiC2/4TTxCoj8O2DGQXPzMTcXPf2x+poGz6Grmfibz8PPEg9dPn/8AQDXOD4WagR/yPfiXp2uRWV4m+HEFto80OtfErW9PsrwfZTJd6gkIcuCAis2BuPYUrCsegeBD/wAUToHb/QIOv/XNa5H4+n/ildF5/wCZh0vkdR/pSc1FY/B+702wtrODx14lENvGsSBroE7VAAzx6CuL+M3w3vbLwtpbt438ROz67pqKzXAO0m5TBH507BY99yxJ69TXG/F3R31nwFqIEl/HJaAXkaafIySSsmSEyoJIPcd6ov8AC2/Lsf8AhOfEgyegueBVDWPBC+HbFr3VfiXrOlWSMFa5vr9IowScAFmwMnp1pjOu+H1hNpngTQbWWe5uZUsoy8t0SZWYrk7j1zk47V0ILFgDnk55rzbT/h9Jq1lFeWHxF129s5hujuLa8SSNx6hhwasf8Kt1AkAeO/EnX/n4FIVjP+ABxd/FH/sdb7n/ALZW9es5r5x+Dfw0u7mf4iGLxhr1pt8YXwbybjG/93Dyff3r0X/hVl+SB/wnXiXn/p5FKwWPSCa8+8PNn4xeLe3+iWgxnr8v3vxzj/gNc/ZeHLXU9cutHtfiZ4gl1G1GZYFuTkDvg4w2OM7Scd8VZtfgfLa6zeanF458Ti7vEjSUtdgghemBjinYLF/wtn/hc3jvGcfZ7Hv1/d8f5969C+YHPOPSvC/Afwz1DUfGvji9k8Z+IA6XsdmFF0QuxIxjpznnqTXef8KvvQcf8Jn4g/C7PT86AOD0rRvFlp8fZ44La8l0WG5mu7nVbhHRZopUDRwo27YyxsSmMbvlz3Fe9KRivJp9DsbTxHDoUvxE1qPVJV3JbG7fnI4G7oGPUKTk5yBW4vwuvcf8jp4gP/b0aQiL4zsHsPC1qAS1z4gs4wewILPz7fJj8a9DXpXg3xo8AXugeELHWk8W65Pd6ZrWmT24muSybnvIoW3KeoKSuMe+e1e8qNopCHUUUUAFFFFABRRRQB88/tT+GLDxZc6LZa3BeW+kBGcapBp51JYpt3EYtiCoLDkuynhQBjv4X8WINS8V/BL4Jjxlpb6reSWdp/aF1rN79iv4NRtl89vL/dNIJ5GgZBJ91VMqgBpVr74IOeKx9Z8GaJ4ileXU9Ltb+R7ZrRmuIw+6FvvJz2NAHy78EfC2nXnjttR1fT9HsriDTro6RFcW0KpNcXL273ShkVUbypoFH7vA3SSFRgjHjclj4YNn4K8Iz2vgXTm/4SVdSvLOW0u57Ag6dqSec8/yCSEOI1iSPaIyFBLZyf0FufBmiXdpplrNpdrJb6ZIktnG0YxAy/dKehFXJ9DsLmJI5LG2kjQbVV4VIVfQDtQB4t+xk2nw/CO+sdOl054bHxDqkBTSI3S1T/SndRErksFKurDJPDDmveKr2ljBYoUt4IrdSclYUCgn6D6D8qsUAeZePJ4oPjF8OWlkSMYv+XYD/l3PrXd/2jZEn/TbYc/89RVPxR4G0Pxp9l/trTYb/wCylmhaTIaMsMNtIIIyODWMPgt4MGf+JFCM+ksn/wAVVXKuc/8AF2wGtar4BubGwj1aXTtfguJbiKZAbKHDeZKckZGMAgc/MK9F/tGyyc31v9DKtc3/AMKY8GjpokQ/7ayf/FUD4L+Dcf8AIDi/7+yf/FUXC4nxL1Gz/wCFeeIsXlu3+hSdJV9PrVzwVqFn/wAIZ4fBvLdSNOt+DKP+ea1maj8CfA2q6fc2VzoEMttcxtFKhkk+ZCMEfep8HwP8E28MMS6DAFijWNP3knCqAAPvegFK4XOmnvrKS3lja7gcMhUoJgN2R0znivMfhDbxQavq19feH5vDN4oa1iWaSEQGESsVCbGO8nglmGegGAK6z/hS3gwHjQoRnriWTn/x6l/4Ux4NI50OI/WWQ/8As1FwudGNQsweb23P1lFcH4Z1K1Pxj8af6Zb4+yWX/LVeuw9s1sD4LeCxnGhQjJycSSf/ABVQj4F+BRcTXA8O2vnzALJLufcwH3QTu5Ap3C51f9o2f/P7b/jKK5zx9PaT+HZCtnFrksTrKltE8bSKRkB0VyFYrnOCQD60w/BPwURg6DD6f6yT/wCKp3/CmPBvX+w4gfaWT/4qi4XKXwd06Twp8M/D+karcWsOo2sBWZFnDYJYtz74IyOgNdj/AGhZnP8Aptv/AN/RXM/8KV8F7t39hQ59fNk/+Kpf+FLeCwSRoMGf+ukn/wAVRcLmR4O1G1X4qfEEm8twrNZEHzV/591HrXd/2jZYz9ttgPeUVy0XwL8CwXE08fh21jmnx5sis4Z8DAyd3NSD4K+CwMf2FCB6CWT/AOKouFzD+PPhy8+IXww1jQtD1azhu7mPJhklwt0oBJgYqQQHOAcdsg8Gt34Z3Elh8O/DVprDWun6nBYQxXNqJlxFIqAFRyeBj1pD8FvBhOf7Ch4GP9bJ0/76pf8AhS3gsgZ0OI4/6ayf/FUrhc6UalZKcm9t8A5P71a8w+FWoWq/Ev40lrqBVPiKzAJkGD/xKLA+tdX/AMKY8GjpocWf+usn/wAVUUfwO8DxPcOnh63V7hw8rK8gMjBQoLHdyQqqM+gFFwudLPe2U0MiG8tyHBXiYD9e1eS/s/8Ah278B2U2j3B+x6HY28FnZjUDbrckxjbw8QHmJtAwz/MTkkCu6/4Uv4M4/wCJHFx/01k/+KpD8F/BhIzocRx0zLIf/ZqdwudJ/aVlj/j+tv8Av6P8a860vULT/hofxMTdwBT4b0/B81ef9IuveuhPwW8GEAHQoiP+usn/AMVUY+BvgcXbXQ8PW4uGQRtKHk3FQSQud3QZP50XC51H9o2WP+P63/7+r/jXjf7QvhLUPF934YvtHmW8TT3nEtrB5Mokd48RmRJTtKBgCSPmHavQf+FMeDP+gHF/39k/+KoHwZ8Gg8aJGP8AtrJ/8VRcLo2tLvlTS7QXt5ZfbVhQT+TKNnmYG7b7ZziuE+Ot9aP4U0YC7gOPEOmEkSrgf6VH710B+C3gwqAdChI9PNk/+KqG5+BXgW8h8qbw5azRb1k2SM7DcpyrYLdQRwe1FwudY2o2W45vbcexlFcx8R9LsPFXhC/swum6leIpns4roo6LcKD5b4bIyD0pw+DHgzH/ACA4h9JZP/iqQ/Bjwacf8SOL/v7J/wDFUXC5b8FW2n+HvB+jaXHJa2gtLSKNoElXCNtG4dfXNbQ1GzDD/TLc/SUVzQ+C3gvOf7Chz6+ZJ/8AFUn/AApTwVzjQYM/9dJP/iqLhc5X4F6naef8Sw13CpHjS/X5nA5EcPFeoDUrIc/bbcjr/rV5/WuWg+B/ge2Mpi8P28ZllM0hR3G+Q4y7YbknA59ql/4Uv4MGP+JHFj2lkH/s1CYXRwngz4d32g/FTUNeutRszp7zXEyN9vLo4kChVihIAhYAfO4J38elevjUbJcf6bbH6SrXNH4LeDCCP7Chwev72T/4qk/4Up4LOM6DAccD95Jx/wCPUXHdGb8NdUsk8R+Owby3B/tgnHmr/wA809671tWsv+f23H1lWuPi+BXgSCaaaPw3axyzNvkZGcFz6n5uTU//AApjwZ/0A4h9JZP/AIqkTocJ4s+Hl9q3xhsNa0zVrWw8PSS2+o6ntul3XF1CjRKCm3IHl+UMhh9zkGvZV1axAP8Aplvx/wBNV/xrlf8AhTHg3PGhxe/72T/4qm/8KV8FndnQYTu6/vJP/iqA0MX9oPUrSX4X3CpdQsf7U0ngSA/8xK2969RBzXEf8KU8E5Unw/bNtdJAHZ2G5GDKcE4OGUEe4rtwMCkIWiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA//9k=" alt="" />
代码:

  1. /*
  2. 挺好的一道题,本题要重新建立树状数组,用dfs从树根开始搜,每搜到一个点他的左值记录该点的新序号,他的
  3. 右值记录改点的子树中的最大深度,这样每个点就变成了树状数组中的C数组参考上图,然后套树状数组区间求和的模板就行了。
  4. 注意本题如果用vector会很费时,vector<int>a[MAX]会超时,vector<vector<int> > a(MAX) 985ms过了(后面这个什么鬼!)。
  5. 不如自己建树用时会更少。
  6. */
  7. #include<iostream>
  8. #include<cstdio>
  9. #include<vector>
  10. #include<cstring>
  11. using namespace std;
  12. const int MAX=;
  13. int c[MAX];
  14. int lef[MAX],rig[MAX];
  15. int n,m;
  16. int rot;
  17. int head[MAX];
  18. int lne;
  19. //vector<int>a[MAX];
  20. //vector<vector<int> > a(MAX);
  21. struct node
  22. {
  23. int to,next;
  24. }a[MAX];
  25. void tadd(int u,int v)
  26. {
  27. a[lne].to=v;
  28. a[lne].next=head[u];
  29. head[u]=lne++;
  30. }
  31. int lowbit(int x)
  32. {
  33. return x&(-x);
  34. }
  35. void add(int id,int val)
  36. {
  37. while(id<=n)
  38. {
  39. c[id]+=val;
  40. id+=lowbit(id);
  41. }
  42. }
  43. int sum(int id)
  44. {
  45. int sum=;
  46. while(id>)
  47. {
  48. sum+=c[id];
  49. id-=lowbit(id);
  50. }
  51. return sum;
  52. }
  53. void dfs(int x)
  54. {
  55. lef[x]=rot;
  56. //for(int i=0;i<a[x].size();i++)
  57. for(int i=head[x];i!=-;i=a[i].next)
  58. {
  59. rot++;
  60. //dfs(a[x][i]);
  61. dfs(a[i].to);
  62. }
  63. rig[x]=rot;
  64. }
  65. int main()
  66. {
  67. int x,y;
  68. char ch[];
  69. int flag[MAX];
  70. scanf("%d",&n);
  71. for(int i=;i<=n;i++)
  72. {
  73. flag[i]=;
  74. add(i,);
  75. }
  76. lne=;
  77. memset(head,-,sizeof(head));
  78. for(int i=;i<n;i++)
  79. {
  80. scanf("%d%d",&x,&y);
  81. //a[x].push_back(y);
  82. tadd(x,y);
  83. }
  84. rot=;
  85. dfs();
  86. scanf("%d",&m);
  87. while(m--)
  88. {
  89. scanf("%s%d",ch,&x);
  90. if(ch[]=='C')
  91. {
  92. if(flag[lef[x]])
  93. add(lef[x],-);
  94. else add(lef[x],);
  95. flag[lef[x]]=!flag[lef[x]];
  96. }
  97. else
  98. {
  99. printf("%d\n",sum(rig[x])-sum(lef[x]-));
  100. }
  101. }
  102. return ;
  103. }

POJ 3321 树状数组(+dfs+重新建树)的更多相关文章

  1. poj 3321(树状数组)

    Apple Tree Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 24954   Accepted: 7447 Descr ...

  2. 【BZOJ】2434: [Noi2011]阿狸的打字机 AC自动机+树状数组+DFS序

    [题意]阿狸喜欢收藏各种稀奇古怪的东西,最近他淘到一台老式的打字机.打字机上只有28个按键,分别印有26个小写英文字母和'B'.'P'两个字母. 经阿狸研究发现,这个打字机是这样工作的: l 输入小写 ...

  3. POJ 3321 Apple Tree (树状数组+dfs序)

    题目链接:http://poj.org/problem?id=3321 给你n个点,n-1条边,1为根节点.给你m条操作,C操作是将x点变反(1变0,0变1),Q操作是询问x节点以及它子树的值之和.初 ...

  4. POJ 3321 Apple Tree 树状数组+DFS

    题意:一棵苹果树有n个结点,编号从1到n,根结点永远是1.该树有n-1条树枝,每条树枝连接两个结点.已知苹果只会结在树的结点处,而且每个结点最多只能结1个苹果.初始时每个结点处都有1个苹果.树的主人接 ...

  5. BZOJ 2434: [Noi2011]阿狸的打字机 [AC自动机 Fail树 树状数组 DFS序]

    2434: [Noi2011]阿狸的打字机 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 2545  Solved: 1419[Submit][Sta ...

  6. 【BZOJ-3881】Divljak AC自动机fail树 + 树链剖分+ 树状数组 + DFS序

    3881: [Coci2015]Divljak Time Limit: 20 Sec  Memory Limit: 768 MBSubmit: 508  Solved: 158[Submit][Sta ...

  7. 【BZOJ-1103】大都市meg 树状数组 + DFS序

    1103: [POI2007]大都市meg Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 2009  Solved: 1056[Submit][Sta ...

  8. POJ 2352Stars 树状数组

    Stars Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 42898   Accepted: 18664 Descripti ...

  9. BZOJ 1103 [POI2007]大都市meg(树状数组+dfs序)

    [题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=1103 [题目大意] 给出一棵树,每条边的经过代价为1,现在告诉你有些路不需要代价了, ...

随机推荐

  1. javase基础笔记3——this关键字和内存图

    什么是面向对象? 面向过程. 面向过程:解决一个问题的思路和方法以及步骤 面向对象:把一些具有相同特征的问题抽象成一个对象,用""""对象.方法()" ...

  2. 【java基础】面向过程~面向对象

    相信大家都知道这两个东西,可是大家是如何知道的呢?我们又该如何区分这个东西到底是面向过程还是面向对象的呢? 那,我们首先就要知道什么是面向过程,什么是面向对象: 面向过程"(Procedur ...

  3. SQLServer两张表筛选相同数据和不同数据

    概述 项目中经常会对两张数据库表的数据进行比较,选出相同的数据或者不同的数据.在SQL SERVER 2000中只能用Exists来判断,到了SQL SERVER 2005以后可以采用EXCEPT和I ...

  4. SQLServer 维护脚本分享(10)索引

    --可添加索引的字段 migs.user_seeks,migs.avg_total_user_cost,migs.avg_user_impact,migs.last_user_seek ,mid.st ...

  5. 【转】Struts2国际化

    原文章:http://www.cnblogs.com/hellokitty1/p/5083663.html 简单理解     国际化简称i18n,其来源是英文单词 internationalizati ...

  6. 解决android expandablelistview 里面嵌入gridview行数据重复问题

    最近做了一个“csdn专家博客App” 当然了是android版本,在专家浏览页面,我才用了expandablelistview 组件来显示专家分类,每个分类点击之后可以显示专家的头像和名字. 很简单 ...

  7. Uva10635 LCS

    题目链接:http://vjudge.net/contest/137498#problem/G 题意:有两个长度为p+1和q+1的序列,每个序列的中的各个元素互不相同,且都是1~n^2之间的整.两个序 ...

  8. 移动终端app测试点总结

    以下所有测试最后必须在真机上完整的执行1.安装.卸载测试 在真机上的以及通过91等第三方的安装与卸载 安装在手机上还是sd卡上 2.启动app测试3.升级测试 数字签名.升级覆盖安装.下载后手动覆盖安 ...

  9. wpf 背景镂空loading.....

    第一步,,使用arc控件 ArcThickness="15" StartAngle="-6" EndAngle="6" 2,拉一个Ellip ...

  10. SOLID面向对象的五个设计原则,留空待学习。

     SOLID面向对象的五个设计原则对于开发人员非常重要,其身影在任何大中型软件项目中随处可见,建议必须掌握并灵活应用.此五原则分别为:     单一职责原则(Single Resposibility ...