2018沈阳集训day1
问题 A: 马克的字符串
时间限制: 1 Sec 内存限制: 256 MB
题目描述
定义一个字符串满足'MK'性质当且仅当它修改其中不超过k个字符后是回文串。给你一个字符串,问它有多少非空子串满足'MK'性质。
输入
输入的第一行包含一个字符串s
输入的第二行包含一个整数k
输出
输出的第一行包含一个整数,为满足'MK'性质的字串数量。
样例输入
Aab 1
样例输出
6
提示
【样例说明】
每一个字串都是回文串或修改一个字母后是回文串
【数据规模与约定】
对于30%的数据:k=0
对于100% 的数据:字符串长度 1<=l<=100,0<=k<=50
题解:n^3暴力,开始跑了个manacher,结果WA了,至今迷
#include<bits/stdc++.h> using namespace std; char str[208]; int k; bool check(int i, int j){int cnt = 0;while(i <= j){if(str[i] != str[j])cnt ++;if(cnt > k)return 0;i++, j--;}return 1; } int main(){scanf("%s", str);scanf("%d", &k);int ans = 0;int len = strlen(str); for(int i = 0; i < len; i++)for(int j = i; j < len; j++)ans += check(i, j); printf("%d",ans); }
View Code
问题 B: 马克家的书
时间限制: 1 Sec 内存限制: 256 MB
题目描述
马克家收藏了一套书,这套书叫《OIER故事集》,这套书有n本,每本书有一个编号,从1号到n号。
马克把这些书按照编号从小到大,从上往下摞成一摞。马克对这套书很珍视,不允许其他人动。
有一天一格到马克家玩,马克因为和妹子约会,就让一格自己呆在家里。一格因为对这套书非常好奇,偷偷的看了一下,结果发现书中竟然有ljs和commonc的故事。一格看的入了迷,结果把一摞书的顺序弄乱了。
眼看着马克就要回来了,一格需要把书恢复到原状,由于每本书都比较重,所以一格能做的操作是把一本书从书堆中抽出来,然后把这本书放到书堆的顶部。
给你打乱的书的顺序,你能帮一格算算最少需要几次上述操作,才能恢复书的顺序。
输入
第一行包含一格正整数T(T<=10),表示数据组数。
对于每组数据,第一行为一格整数n。
接下来的一行有n个用空格分开的正整数,表示一格打乱后的书的顺序,从上到下。
输出
对于每组数据,输出一行一个整数,表示一格最少经过几次操作才能恢复书的顺序。
样例输入
2 4 4 1 2 3 5 1 2 3 4 5
样例输出
3 0
提示
【样例说明】
样对于第一组数据,我们先把3号书放在最上面,接着操作2号书,最后操作1号书,(4,1,2,3)—(3,4,1,2)—(2,3,4,1)—(1,2,3,4)这样就有序了。
对于第二组数据,已经有序就不需要挪了。
【数据规模与约定】
对于 50% 的数据满足 n<=10
对于 80%的数据满足 n<=1000
对于 100% 的数据满足 n<=100000
题解:智力题,从后往前扫,递减序列,其他的最少移动一次
#include<bits/stdc++.h> using namespace std; const int maxn = 100005; int a[maxn]; int main(){int t;scanf("%d",&t);while(t--){int n;scanf("%d", &n);for(int i = 1; i <= n; i++)scanf("%d", &a[i]);int p = n, cnt = 0;for(int i = n; i >= 1; i--)if(a[i] == p)p--, cnt++;printf("%d\n",n - cnt);}}
View Code
问题 C: 马克的幸运数
时间限制: 1 Sec 内存限制: 256 MB
题目描述
马克和同学们玩卡牌游戏。一共有n张卡牌,每张卡牌上有一个数Ai,每次可以从中选出k张卡牌。一种选取方案的幸运数为这k张卡牌上数的异或和。马克想知道所有选取方案的幸运数之和除以998244353的余数。
输入
第一行有两个整数n和k。
第二行有n个整数,表示序列A。
输出
一行,一个整数,表示答案。
样例输入
3 2 1 2 3
样例输出
6
提示
【样例说明】
样例1幸运值之和为(1 ⊕ 2) + (1 ⊕ 3) + (2 ⊕ 3) = 6
【样例输入2】
10 5
123 456 789 987 654 321 101 202 303 404
【样例输出2】
130776
【数据规模与约定】
对于30%的数据满足,1<=n<=20
对于另30%的数据满足,1<=n<=100,0<Ai<=1024
对于80%的数据满足,1<=n<=2000
对于100%的数据满足,1<=n<=100000,0<Ai<2^31,1<=k<=n
题解:亦或和拆位,统计每位有1的个数,只有选奇数个才有贡献,然后方枚举选1多少个,选0多少个,乘法原理,注意特判不要超过k
#include<bits/stdc++.h> using namespace std; const int maxn = 100005; #define ll long long ll a[maxn], fac[maxn], infac[maxn]; const ll p = 998244353; ll exgcd(ll a, ll b, ll &x, ll &y){if(b == 0){x = 1; y = 0; return a;}ll x0, y0;ll d = exgcd(b, a % b, x0, y0);x = y0;y = x0 - (a / b ) * y0; return d; } ll inv(ll a){ll x, y;exgcd(a, p, x, y);return (x % p + p) % p; } int main(){int n, k;fac[0] = 1;infac[0]= 1;ll ans = 0;scanf("%d%d", &n, &k);for(int i = 1; i <= n; i++){scanf("%lld", &a[i]);fac[i] = fac[i-1] * i % p;infac[i] = inv(fac[i]);}long long an=1;for(int i = 0; i <= 31; i++){int sum = 0;for(int j = 1; j <= n; j++)if(a[j] & (1<<i) )sum++; int siz = min(k, sum);for(int j = 1; j <= siz; j+=2)if (k - j <= n-sum )ans = ( ans + ( (1ll<<i) % p * (fac[sum] * infac[j] % p * infac[sum-j] % p ) % p * (fac[n - sum] * infac[n - sum - k + j] % p * infac[k - j] % p) ) )% p;}printf("%lld\n", ans); }
View Code
问题 D: 马克的达人秀
时间限制: 1 Sec 内存限制: 256 MB
题目描述
马克要带着他的N个oier,方便起见编号为1…N,到oi展览会上去,参加每年的达人秀!他的第i个oier体重为wi,才艺水平为ti,两者都是整数。在到达时,马克就被今年达人秀的新规则吓到了:
(一)参加比赛的一组oier必须总重量至少为W(这是为了确保是强大的队伍在比赛,而不仅是强大的某个oier),并且
(二)总才艺值与总重量的比值最大的一组获得胜利。
马克注意到他的所有oier的总重量不小于W,所以他能够派出符合规则(一)的队伍。帮助他确定这样的队伍中能够达到的最佳的才艺与重量的比值。
输入
输入的第一行包含N和W。下面N行,每行用两个整数wi和ti描述了一个oier。
输出
请求出马克用一组总重量最少为W的oier最大可能达到的总才艺值与总重量的比值。
如果你的答案是A,输出1000*A向下取整的值,以使得输出是整数
(当问题中的数不是一个整数的时候,向下取整操作在向下舍入到整数的时候去除所有小数部分)。
样例输入
3 15 20 21 10 11 30 31
样例输出
1066
提示
在这个例子中,总体来看最佳的才艺与重量的比值应该是仅用一个才艺值为11、重量为10的oier,但是由于我们需要至少15单位的重量,最优解最终为使用这头奶牛加上才艺值为21、重量为20的oier。这样的话才艺与重量的比值为(11+21)/(10+20)=32/30=1.0666666…,乘以1000向下取整之后得到1066。
【数据规模与约定】
对于20%的数据满足,1<=n<=20
对于40%的数据满足,1<=n<=50,输出答案保证小于23333
对于100%的数据满足,1≤N≤250,1≤W≤1000,1≤wi≤10^6,1≤ti≤10^3
保证数据有梯度
题解:dp,01背包, f[i][j]表示达到才艺值为i最少花的体力, 答案就在dp[0~sum][w] (w >W)中
#include<bits/stdc++.h> using namespace std; const int maxn = 300, maxm = 300005, inf = 1000000008; int N, W; const double eps = 1e-6; struct cow{int t, w; double val; }c[maxn]; int dp[2][maxm]; int main(){scanf("%d%d", &N, &W);int sum = 0; double ans = 0;for(int i = 1; i <= N; i++)scanf("%d%d", &c[i].w, &c[i].t), sum += c[i].t;int u = 0;for(int i = 1; i <= sum; i++) dp[u][i] = inf;dp[0][0] = 0;for(int i = 1; i <= N; i++){u ^= 1;for(int j = 0; j <= sum; j++)dp[u][j] = dp[u^1][j];for(int j = c[i].t; j <= sum; j++)dp[u][j] = min(dp[u][j], dp[u^1][j - c[i].t] + c[i].w);/*for(int j = 0; j <= sum; j++)if(dp[u][j] != inf){printf("i = %d j = %d dp = %d\n",i,j,dp[u][j]);}*/}for(int i = 0; i <= sum; i++)if(dp[u][i] >= W) ans = max(ans, 1.0 * i / dp[u][i]);printf("%d\n", (int) floor(ans*1000)); }
View Code
第一天考崩了,差距巨大,后面怎么也追不上去,奠定我在联训悲惨的基调
转载于:https://www.cnblogs.com/EdSheeran/p/9166158.html
2018沈阳集训day1相关推荐
- 2018暑假集训Day1
这几天的训练对我来说真是前所未有的高强度. 然后,几乎都是垫底吧.(被列入危险名单 觉得今年的普及一等很悬,很悬.. 今天值得写写blog的T2:(其实对大部分人来说很水 一天狼需要从二维平面上的(0 ...
- ACM-ICPC 2018 沈阳赛区网络预赛 Spare Tire(容斥+公式推)
A sequence of integer \lbrace a_n \rbrace{an} can be expressed as: \displaystyle a_n = \left\{ \beg ...
- ACM-ICPC 2018 沈阳赛区网络预赛(E F G J K)
ACM-ICPC 2018 沈阳赛区网络预赛(E F G J K) 复杂的模拟题懒癌患者表示写不动 D. Made In Heaven (K短路) 略 int head[MAXN]; int cure ...
- 2018沈阳网络预选赛 kachang
Ka Chang 问答问题反馈 只看题面 19.64% 1000ms 131072K Given a rooted tree ( the root is node 11) of NN nodes. I ...
- 寒假2018培训:DAY1
全新一刻: 经过8小时的车程,我终于来到了福州,因为刚还奉上了自2002年来的第一场雪,气温就跟浙江差不多了,很舒服--前水: 第一天上课: 上午,我们老师讲了枚举和深搜,虽然我都有基础,但依旧有很多 ...
- 【总结】2019.8.19南海中学暑假集训Day1
今天是来南中集训的第一天,虽然以往都来集训过几次,可这次不太一样,这次是以一名新高一同学的身份正式加入到南中信息学的队伍中,和各位大佬一起学习,挺好! 又是一个人住一间宿舍,大晚上的外面有只青蛙在不停 ...
- 雅礼集训 Day1 T1 养花
养花 题目描述 小\(C\)在家种了\(n\)盆花,每盆花有一个艳丽度\(a_i\). 在接下来的\(m\)天中,每天早晨他会从一段编号连续的花中选择一盆摆放在客厅, 并在晚上放回. 同时每天有特定的 ...
- ACM-ICPC 2018 沈阳赛区网络预赛 F. Fantastic Graph(有源上下界最大流 模板)
关于有源上下界最大流: https://blog.csdn.net/regina8023/article/details/45815023 #include<cstdio> #includ ...
- 【2018北京集训(六)】Lcm
Portal --> 出错啦qwq(好吧其实是没有) Description 给定两个正整数\(n,k\),选择一些互不相同的正整数,满足这些数的最小公倍数恰好为\(n\),并且这些数的和为\( ...
最新文章
- 网络国际治理系列 | WTO电子商务谈判合并文本数据跨境流动部分
- 第一次参加学校的ACM比赛所学及感想
- SwipeRefreshLayout里面需要注意的Api
- 程序员常见的坏习惯,你躺枪了吗?
- C语言字符输出格式化
- oracle数据管理员常用词语,总结Oracle数据库管理员的常用命令
- 修改本地数据库root权限密码
- 并发控制技术手段之时间戳(二)
- 置换选择排序算法详解(C语言实现)
- 手机游戏连接计算机屏幕,手机怎么投屏到电脑?简单几个步骤就能实现,看电影玩游戏爽爆了...
- jmeter的吞吐量控制器
- 【预测模型-ELM分类】基于鲸鱼算法优化核极限学习机实现数据分类附matlab代码
- RK3288开发板PopMetal上的GPIO驱动实例
- word里添加加行号可编辑的代码方式,超级方便简单
- Ubuntu上遇到Failed to construct device ‘usb-ehci‘ instance #0
- PowerQuery的数据获取界面(Excel及PowerBI)的异同-PowerQuery系列文章之二
- 广州番禺翠湖山庄小区规划图
- P3964 松鼠聚会(切比雪夫距离模板)
- c#file过滤多种格式_C# 文件过滤器filter
- zabbix5.0使用问题解决步骤 2021-3-19