zoukankan      html  css  js  c++  java
  • 【心得体会】11.16-11.22

    tips

    1、最大的回文素数是9989899。

    2、注意数据范围,数组不能开太大也不能太开小。(RE警告!)有时候不一定是给的数据的大小,要计算实际数据大小。

    3、对于奇怪的WA错误,要注意输出格式(末尾空格),有些OJ没有PE的错误。

    改进之处

    1、除了训练赛和USCAO系列,题量难度不够,根据队伍内部情况,下周开始加大图论方面的学习,以补足队伍中的图论短板。

    2、赛后补题存在拖延现象,原因:1、要补的题目学不会,补不了。2、补题花费时间不够多。

    3、链表指针方面掌握不熟练,可以找一部分题目进行训练。

    4、USCAO系列还是需要花时间去做一做的。

    5、对于答题注意事项,每周心得会写,但是主要还是在另外一个博客里面更新。
    https://www.cnblogs.com/Shayndel/p/13983706.html

    本周题单

    USCAO系列

    USACO Training 1.5.1 Number Triangles

    数字金字塔,经典入门dp

    USACO Training 1.5.2 Prime Palindromes

    判回文质数,这题RE好几发,最后发现对回文素数的估计不准确,数组开太大了。(虽然本地编译和洛谷能过,但是这一点还是需要值得注意一下吧,毕竟不知道什么时候评测机卡

    USACO Training 1.5.3 Superprime Rib

    简单二分+素数吧,比较简单的一道题

    USACO Training 1.5.4 Checker Challenge

    n皇后问题,用传统回溯法做的,有时间把位运算补上。

    总结

    以上题目是1.5的内容,都是比较简单的题,但是在一些出锅的细节上,也学到了一些东西把。有时间补1.4。

    CF系列

    本周算是打了两场CF

    一场是周日的div2

    题解链接:https://www.cnblogs.com/Shayndel/p/13998829.html

    一场是周四的EDU

    题解链接:https://www.cnblogs.com/Shayndel/p/14017152.html

    训练赛

    CCCC训练第三场

    本来是想针对这场比赛也写个题解,但是本周有点没时间了,就大概统计一下吧,除了最后几道题,其余算手速水题了。

    7-1 求整数均值

    从题目得知,是一道水题,算平均值

    7-2 矩阵运算

    矩阵除副对角线、最后一列和最后一行以外的所有元素之和

    7-3 Hello World!

    输出Hello World!

    7-4 考试座位号

    对应每个需要查询的试机座位号码,在一行中输出对应考生的准考证号和考试座位号码

    7-5 求1到N的和

    题意同标题

    7-6 谷歌的招聘

    输出 N 中最早出现的 K 位连续数字所组成的素数

    特别的是用到了stoi()函数

    7-7 整数算术运算

    输出两个数的加减乘除取余

    7-8 西安距离

    哈密顿距离,输出两个坐标绝对值的和

    7-9 Maximum Subsequence Sum

    经典最大公共子序列

    7-10 列车厢调度

    栈模拟

    7-12 二叉搜索树的2层结点统计

    搜索+链表

    7-13 畅通工程之局部最小花费问题

    克鲁斯卡尔最小生成树

    7-15 凑零钱

    简单dfs

    总结

    这套题难度相对来说较为简单,三个小时,15道题,我过了13道。但是从这套题上发现,我在指针链表运用方面比较欠缺(虽然对比赛而言其实用不太到)但也发现是我自己的一个短板所在吧。

    华东师范

    这套题不太好做,周五的时候身体不舒服,状态也不太行。过了BA之后就罚坐了

    B. 辗转相除法

    https://acm.ecnu.edu.cn/contest/340/problem/B/

    找一个数据,是所给代码的反例。由题意我们可以得到 30 70 105 这个反例。(但是我还是想了很久很久,30分钟签到)

    A. 选择题

    https://acm.ecnu.edu.cn/contest/340/problem/A/

    看了一年的中文题目,思路:每个年份肯定是有一些是正确答案有一些是错误答案,那么这个年份能出的题就确定了,只要然后哪些人可以作为答案也是确定的
    组合数搞一下就行了,一个年能出的题数是C错误答案取3*正确答案,对于一个年份,找到第一个大于等于当前重要年,找到第一个在这之后出生的人

    代码:

    #include <bits/stdc++.h>
    #define int long long
    #define ll long long
    #define ull unsigned long long
    #define Mid ((l + r) >> 1)
    #define lson (rt << 1)
    #define rson (rt << 1 | 1)
    using namespace std;
    const int mod = 114514;
    int read(){
    	char c; int num, f = 1;
    	while(c = getchar(),!isdigit(c)) if(c == '-') f = -1; num = c - '0';
    	while(c = getchar(), isdigit(c)) num = num * 10 + c - '0';;
    	return f * num;
    }
    int n, m, a[100009], b[100009], d[100009];
    main()
    {
    	n = read(); m = read();
    	for(int i = 1; i <= n; i++)a[i] = read();
    	for(int i = 1; i <= n; i++)b[i] = read();
    	for(int i = 1; i <= m; i++)d[i] = read();
    	sort(a + 1, a + 1 + n);
    	sort(b + 1, b + 1 + n);
    	sort(d + 1, d + 1 + m);
    	int fans = 0;
    	for(int i = 1; i <= m; i++){
    		int l, r, p1, p2;
    		ll ans;
    		l = 1; r = n;
    		while(l <= r){
    			if(b[Mid] > d[i]) r = Mid - 1;
    			else l = Mid + 1;
    		}
    		p1 = r;
    		//n - p1个错误选项
    		//p1个正确选项
    		l = 1; r = n;
    		while(l <= r){
    			if(a[Mid] >= d[i]) r = Mid - 1;
    			else l = Mid + 1;
    		}
    		p2 = r;
    		//p2个正确人
    		if(n - p1 < 3)continue;
    		if(p1 < 1) continue;
    		
    		ans = (n - p1) * (n - p1 - 1) * (n - p1 - 2) / 3 / 2;
    		ans %= mod;
    		ans = ans * (p1) % mod * (p2) % mod;
    		fans = (fans + ans) % mod;
    	}
    	printf("%lld
    ", fans);
    	
    	return 0;
    }
    

    WA了一发,这题告诉我,不开ll见祖宗。

  • 相关阅读:
    DirectoryInfo
    TextBox Validation
    ICollectionView
    MEF
    LocBaml
    加快wpf程序 启动速度
    jQuery获取Radio元素的值 深蓝
    如何创建一个规范的zen cart 模板 深蓝
    打通网络营销的任督二脉 深蓝
    jQuery选择没有colspan属性的td 深蓝
  • 原文地址:https://www.cnblogs.com/Shayndel/p/14019906.html
Copyright © 2011-2022 走看看