摘要:
1650简单题 线段树的单点更新 就是字符串神马的 有点小繁琐 开两个map 一个存城市 一个存名字 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 using namespace std; 9 #define N 60010 10 #define LL long long 11 LL s[Nq; 14 mapqq; 15 char pq[N][25]; 16 struct node 17 { 18 int d; 19 char s1[25]; 20... 阅读全文
摘要:
1316我想说 要不要这么坑 WA了一个小时啊 ,都快交疯了,拿着题解的代码交都WA 最后很无语的觉得题解都错了 重读了N遍题意 发现没读错啊 难道写题解的那个人和我都想错了??最后把g++换个C++交吧 就这么A了 我#¥#%。。这个题有要注意的地方 WA6 取整的地方要那样处理(看代码) 具体我也不知道为什么 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 #define N 1000000 9 #define LL long long10 #define. 阅读全文
摘要:
1701又是类似食物链的这一类题这题是找与根节点的和差关系 因为0节点是已知的 为0 那么所有的都可以转换为与0的和差关系可以规定合并的两节点 由大的指向小的 然后再更新和差关系有可能最后有的不在0集合中 这时要确定最大初值 当然根据集合中出现的负值来确定 题目中工资不能出现负值 也不可大于10^9 在处理完关系后 再判断一下这两个条件 不满足的话就输出m 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 #define N 50010 9 #define LL. 阅读全文
摘要:
1628题意不太好理解 求横黑条 和竖黑条共有多少个 注意1*1的情况 如果横向纵向都是1*1 算为一个 否则不算用了下vector 枚举找下 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 #define N 30010 9 vectorp[N];10 vectorq[N];11 int o1[N],o2[N];12 int main()13 {14 int i,j,m,n,k,x,y,t,sum=0;15 scanf("%d%d%d",& 阅读全文
摘要:
1523这题应该说有一些DP的思想吧 dp[i][j]表示以i为结尾第j个数的个数 k单调下降 直接求的话肯定超时 然后用树状数组来进行维护求k-1次树状数组 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 #define lowbit(x) x&(-x) 8 #define N 20010 9 #define LL long long10 #define mod 100000000011 int dp[N][12],n,a[N],po[N],sum[N][12];12 vo 阅读全文
摘要:
1890将树的每个节点都转换为区间的形式 然后再利用线段树对结点更新 这题用了延迟标记 相对普通线段树 多了dfs的转换 把所要求的转换为某段区间RE了N次 最后没办法了 记得有个加栈的语句 拿来加上A了。。 1 #pragma comment(linker, "/STACK:102400000,102400000") 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 using namespace std; 9 #define N 50010 10 #define LL long lon 阅读全文