2017 清北济南考前刷题Day 2 morning】的更多相关文章

期望得分:100+100+30=230 实际得分:100+100+30=230 1. 三向城 题目描述 三向城是一个巨大的城市,之所以叫这个名字,是因为城市中遍布着数不尽的三岔路口.(来自取名力为0的出题人) 具体来说,城中有无穷多个路口,每个路口有唯一的一个正整数标号.除了1号路口外,每个路口都连出正好3条道路通向另外3个路口:编号为x(x>1)的路口连出3条道路通向编号为x*2,x*2+1和x/2(向下取整)的3个路口.1号路口只连出两条道路,分别连向2号和3号路口. 所有道路都是可以双向通…
期望得分:80+30+70=180 实际得分:10+30+70=110 T1 水题(water) Time Limit:1000ms   Memory Limit:128MB 题目描述 LYK出了道水题. 这个水题是这样的:有两副牌,每副牌都有n张. 对于第一副牌的每张牌长和宽分别是xi和yi.对于第二副牌的每张牌长和宽分别是aj和bj.第一副牌的第i张牌能覆盖第二副牌的第j张牌当且仅当xi>=aj并且yi>=bj.(注意牌不能翻转)当然一张牌只能去覆盖最多一张牌,而不能覆盖好多张. LYK想…
实际得分:100+0+0=100 T1 右上角是必败态,然后推下去 发现同行全是必胜态或全是必败态,不同行必胜必败交叉 列同行 所以n,m 只要有一个是偶数,先手必胜 #include<cstdio> using namespace std; int main() { freopen("star.in","r",stdin); freopen("star.out","w",stdout); int n,m; whi…
期望得分:100+40+100=240 实际得分:100+40+100=240 将每个联通块的贡献乘起来就是答案 如果一个联通块的边数>点数 ,那么无解 如果边数=点数,那么贡献是 2 如果边数=点数-1,那么贡献是点数 #include<queue> #include<cstdio> #include<iostream> using namespace std; ; #define N 100001 ],nxt[N<<],tot; bool vis[…
期望得分:30+50+30=110 实际得分:40+0+0=40 并查集合并再次写炸... 模拟更相减损术的过程 更相减损术,差一定比被减数小,当被减数=减数时,停止 对于同一个减数来说,会被减 第1次减这个减数的被减数/这个减数 次 然后这个减数成为被减数,减数变为 原被减数-k*原减数,即原被减数%原减数 就变成了辗转相除 #include<cstdio> #include<iostream> using namespace std; typedef long long LL;…
期望得分:100+50+20=170 实际得分:10+50+20=80 1. 纸牌 题目描述 在桌面上放着n张纸牌,每张纸牌有两面,每面都写着一个非负整数.你的邪王真眼可以看到所有牌朝上的一面和朝下的一面写的数字.现在你需要将一些牌翻过来,使得所有牌朝上的一面中,至少有一半(≥n/2)的数字是一样的.请你求出最少需要翻几张牌,或者判断无解. 注意:在翻牌的时候,你不能把牌扔掉,不能偷偷把别的牌放进来,也不能用笔涂改牌上面的数字. 输入格式 第一行包含一个整数n,表示牌的数量: 接下来n行,每行两…
期望得分:100+100+30=230 实际得分: 正解: 枚举最高的位,这一位m是1但实际用了0 然后剩余的低位肯定是 正数就用1,负数用0 考场思路:数位DP #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> using namespace std; typedef long long LL; #define N 100001 int a[N]; char…
T1 贪心 10 元先找5元 20元 先找10+5,再找3张5 #include<cstdio> using namespace std; int m5,m10,m20; int main() { freopen("book.in","r",stdin); freopen("book.out","w",stdout); int n; scanf("%d",&n); int x; ;i&l…
期望得分:100+100+30=230 实际得分:0+0+0=30 T1 直接模拟 #include<cstdio> #include<iostream> using namespace std; void read(int &x) { x=; char c=getchar(); while(!isdigit(c)) c=getchar(); +c-'; c=getchar(); } } #define N 1002 int e[N][N],t[N],pos[N]; int…
期望得分:100+100+0=200 实际得分: 坐标的每一位不是0就是1,所以答案就是 C(n,k) #include<cstdio> #include<iostream> using namespace std; ; void read(int &x) { x=; char c=getchar(); while(!isdigit(c)) c=getchar(); +c-'; c=getchar(); } } int Pow(int a,int b) { ; ) ) re…