codeforces 111A/112C Petya and Inequiations】的更多相关文章

题目: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:如果这种构…
A. Petya and Inequiations Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/111/problem/A Description Little Petya loves inequations. Help him find n positive integers a1, a2, ..., an, such that the following two conditions a…
题目: 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…
题目: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])],但循…
Codeforces 111 C 题意:给\(n\times m\)的网格,每个点上有一个蜘蛛,每个蜘蛛可以向上.下.左.右走一步或者不动,问最多能存在多少没有蜘蛛的点. 思路1: 首先因为\(n\)和\(m\)中小的那个不可能超过\(6\),所以钦定\(m < n\)(因为如果\(n\)和\(m\)互换不影响答案). 然后就可以考虑状压\(dp\)了. 首先我们看\((x,y)\)这个点上面可爱的小蜘蛛的去向.它可能会往上走,到\((x-1,y)\):也可能向下走,到\((x+1,y)\):也…
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…
题目传送门 题意:现在有一个图,选择一条边,会把边的2个顶点也选起来,最后会的到一个边的集合 和一个点的集合 , 求边的集合 - 点的集合最大是多少. 题解:裸的最大权闭合子图. 代码: #include<bits/stdc++.h> using namespace std; #define Fopen freopen("_in.txt","r",stdin); freopen("_out.txt","w",std…