codeforces 111C/112E Petya and Spiders】的更多相关文章

题目: Petya and Spiders传送门: http://codeforces.com/problemset/problem/111/C http://codeforces.com/problemset/problem/112/E分析:(1)由n·m<=40可以想到状态压缩动态规划,方程很好想,用四进制表示状态,用位运算优化.(2)由n·m<=40可以想到分类构造公式.代码: 1) #include<cstdio> #include<algorithm> #de…
Codeforces 111 C 题意:给\(n\times m\)的网格,每个点上有一个蜘蛛,每个蜘蛛可以向上.下.左.右走一步或者不动,问最多能存在多少没有蜘蛛的点. 思路1: 首先因为\(n\)和\(m\)中小的那个不可能超过\(6\),所以钦定\(m < n\)(因为如果\(n\)和\(m\)互换不影响答案). 然后就可以考虑状压\(dp\)了. 首先我们看\((x,y)\)这个点上面可爱的小蜘蛛的去向.它可能会往上走,到\((x-1,y)\):也可能向下走,到\((x+1,y)\):也…
题目:Petya and Divisors传送门: http://codeforces.com/problemset/problem/111/B http://codeforces.com/problemset/problem/112/D 分析: 很容易想到读入x[i].y[i],寻找x[i]的因数,判断一下是不是x[i-y[i]].x[i-y[i]+1]...x[i-1]的某个数因数:但这样会超时:考虑以下两个优化:(1)寻找x[i]因数时循环范围只需要从j∈[0,sqrt(x[i])],但循…
题目:Petya and Inequiations传送门: http://codeforces.com/problemset/problem/111/A http://codeforces.com/problemset/problem/112/C 分析: 先引一个简单的结论:“(a+b)^2>=a^2+b^2”,可得一个简单的贪心:让其中一个数越大越好:再从“a[1] + a[2] + ... + a[n] <= y”入手:让a[1]越大越好,a[2].a[3]...a[n]都为1:如果这种构…
http://codeforces.com/contest/112/problem/E 轮廓线dp.每一个格子中的蜘蛛选一个去向.终于,使每一个蜘蛛都有一个去向,同一时候保证有蜘蛛的格子最少.须要用4进制模拟 此题还能够用DLX+二分来解,这个解法相对于轮廓线dp就非常无脑了,不用考虑细节.以后再补上 #include <iostream> #include <cstdio> #include <cstring> #include <string> #inc…
题目链接[http://codeforces.com/problemset/problem/111/C] 题意:给出大小为N*M的图(1 ≤ n, m ≤ 40, n·m ≤ 40),每个图中有一个蜘蛛,每个蜘蛛有5种运动状态,不动,向上下左右移动.问蜘蛛如何移动才能使得图中的空地数最大,输出最大空地数. 题解:虽然(1 ≤ n, m ≤ 40, n·m ≤ 40),但是当(n<m)的时候可以swap(n,m),对结果是没有影响的.用一个二进制数表示每一行的每个位置的状态.最多有(1<<…
G - Petya and Graph 思路: 最大权闭合子图 对于每条边,如果它选了,那么它连的的两个点也要选 边权为正,点权为负,那么就是求最大权闭合子图 代码: #pragma GCC optimize(2) #pragma GCC optimize(3) #pragma GCC optimize(4) #include<bits/stdc++.h> using namespace std; #define fi first #define se second #define pi ac…
题目链接:https://codeforces.com/contest/978/problem/G 题目大意:n天m门考试,每门考试给定三个条件,分别为:1.可以开始复习的日期.2.考试日期.3.必须要复习的时间.根据以上条件,给出每天的安排,每天可以做三件事:1.考试.2.复习.3.休息 题解:先假设每天都在休息,然后依次填东西,策略是最先考试的最先复习 AC代码: #include<cstdio> #include<cstring> #include<algorithm&…
补的若干年以前的题目,水题,太菜啦_(:з」∠)_    B. Petya and Exam   time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output It's hard times now. Today Petya needs to score 100 points on Informatics exam. The tasks s…
[链接] 我是链接,点我呀:) [题意] 题意 [题解] 把a[i]处理成前缀和 离散化. 枚举i从1..n假设a[i]是区间和的a[r] 显然我们需要找到a[r]-a[l]<t的l的个数 即a[r]<t+a[l] 那么我们处理完每个i之后,每次把a[i]+t加入到树状数组中去. 每次以进入i的时候,找到比a[r]大的a[l]+t的个数就好(用树状数组求和即可) [代码] #include <bits/stdc++.h> #define ll long long using nam…