‹ 上一主题|下一主题 go 回复: 14 | 浏览: 5347 |倒序浏览 | 字体: tT
手机看此贴
  • 微信扫一扫 手机看此贴
  • 好内容 随时分享到朋友圈

华工博士老师带高三毕业生学编程python,二缺一 ...

[复制链接]

Rank: 14Rank: 14Rank: 14Rank: 14Rank: 14

帖子
经验值
2326  
注册时间
2017-3-12 
    • 妈妈网轻聊
      给生活加点料

    • 妈妈网孕育
      就是好用

      holdImg
    • 广州妈妈网
      广州妈妈网,更懂广州妈妈

      广州妈妈网二维码
楼主
发表于 2021-6-23 08:50 |只看该作者 | 最新帖子 | 查看作者所有帖子 | 发短消息 | 加为好友 | 字体大小: tT
华工博士老师带高三毕业生学python,二缺一,150元每小时,7天,每天三小时,有意者与我联系。
来自[广州妈妈iPhone版]

Rank: 13Rank: 13Rank: 13Rank: 13

帖子
经验值
1943  
注册时间
2018-6-2 
教算法么?
来自[广州妈妈iPhone版]

Rank: 14Rank: 14Rank: 14Rank: 14Rank: 14

帖子
经验值
2326  
注册时间
2017-3-12 
我不太懂,要问老师
来自[广州妈妈iPhone版]

Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7

帖子
经验值
443  
注册时间
2017-12-21 
c++教吗😊
来自[广州妈妈Android版]

Rank: 14Rank: 14Rank: 14Rank: 14Rank: 14

帖子
经验值
2326  
注册时间
2017-3-12 
没啥时间了,我家娃儿准备开学了
来自[广州妈妈iPhone版]

Rank: 13Rank: 13Rank: 13Rank: 13

帖子
335 
经验值
1756  
注册时间
2021-8-22 
七天可以学什么

Rank: 14Rank: 14Rank: 14Rank: 14Rank: 14

帖子
经验值
2326  
注册时间
2017-3-12 
暑假过了,不学了
来自[广州妈妈iPhone版]

Rank: 2Rank: 2

帖子
经验值
30  
注册时间
2021-9-5 
BB生日
2002-09-05
回复 海洋恬歆 的帖子

我可以远程一对一教c++和算法竞赛

Rank: 2Rank: 2

帖子
经验值
30  
注册时间
2021-9-5 
BB生日
2002-09-05


   
cher1000 发表于 2021-6-26 16:20
教算法么?


我教算法竞赛

Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19

帖子
经验值
16600  
注册时间
2017-10-28 


   
回复 ss3hj 的帖子
我教算法竞赛


私信发一下你的个人简介和收费之类的信息
来自[广州妈妈iPhone版]

Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7

帖子
经验值
430  
注册时间
2021-2-12 


   
回复 ss3hj 的帖子
我教算法竞赛


孩子学过初级算法,麻烦私发一下收费价格和个人简介
来自[广州妈妈iPhone版]

Rank: 2Rank: 2

帖子
经验值
30  
注册时间
2021-9-5 
BB生日
2002-09-05
发一个我的USACO编程竞赛讲稿
本讲稿适合准备参加美国计算机奥林匹克竞赛USACO,加拿大计算机竞赛CCC的学生阅读。默认阅读者已经学过编程语言,最好是C++。
本讲稿覆盖USACO涉及的大部分算法/数据结构/技巧,分成基础,铜组(Bronze division),银组(Silver division),金组(Gold division),白金组(Platinum division)五部分。

学习算法不只是提高你的编程水平,而是培养你解决问题的能力,这种能力也有益于别的领域/学科。Thinking twice,coding once.在你开始敲代码前先仔细想清楚你的思路(算法)。

算法竞赛是在限定的时间内写代码来解决问题,然后把你的代码提交给评测系统,评测系统事先准备好若干组输入数据和相应的输出数据作为测试点test case,把输入数据喂给选手的程序,在限定的时间(通常2s)和内存(通常256M)范围内产生出结果,把输出结果与测试点比较,一致就得分,即“黑盒测试”。

算法竞赛和软件开发不一样,不要求可维护性,不需要注释/文档,只要编程快(算法易实现),运行快,结果正确,只要你自己可读就行(只在比赛时可读)。

USACO每个赛季举办4次比赛:12月,1月,2月,US open(3月)。一般是4小时(US open是5小时)完成3道题,总分是1000分,每题333分(如果有15个测试点,每个测试点22分),总得分达到一定分数线就晋级,

练习时选择适合自己水平的题目,所谓适合自己水平,就是需要费劲思考才有解决方案,或者只能得大部分分数,剩余的小部分测试点只能看题解。如果你一看题目就知道怎么解决,这是太简单了。如果你只能得0分或少数分,那对你来说太难了。一般铜组题目思考15-20分钟还一无所获,银组题目思考30-40分钟还没有思路,那就可以看题解了;看别人的题解时先看一点点前面的提示,如果这时自己恍然大悟,就不要继续往下看了,而应该试着自己完成剩余部分。

一、基础知识
1.1尽量使用C++语言
C++是使用最广泛的参赛语言/题解语言。参赛所用C++只是C++语言的一个小子集,只是C语言加上标准模板库STL。
虽然在USACO,Python、Java时间限制是C++的两倍(4s),但还是C++程序运行更快,更易于满足时间限制。白金组使用Python有些测试点可能会超时。

在2020年12月之前,USACO采用文件输入输出,如下:
#include <cstdio>
using namespace std;

int main(){
        freopen("problem-name.in","r",stdin);
        freopen("problem-name.out","w",stdout);
        。。。
}
在2020年12月之后,USACO采用标准输入输出。
使用cin/cout时,可以main开头用”  ios::sync_with_stdio(false); cin.tie(0); “取消C和C++ I/O流的同步,取消cin之前先完成输出,加速读写。
输出结果时不要在末尾输出额外的空格或空行。例如:
cout << "ans" << " "; cout << "ans" << "\n\n";
尽量把数组声明为全局,它会自动初始化为0.
USACO可以使用万能头文件。如下:
#include <bits/stdc++.h>
可以多次提交你的代码,以最后一次提交的为准。
在你的本机编译环境设置里加:"-O2" 优化加速, "-std=c++11"支持C++11, 还可以加:-Wall -Wextra -Wshadow -Wconversion -Wfloat-equal -Wduplicated-cond -Wlogical-op

#define MOD 1e9 + 7
int main() {
        cout << int(MOD) << "\n"; // 1000000007
        cout << int(MOD*2) << "\n"; // 1000000014
        cout << int(2*MOD) << "\n"; // 2000000007
}
const int MOD = 1e9 + 7;

#define ll long long
int main() { cout << ll(1e18); }
// using ll = long long;

常用5种数据类型:
32位整数int,范围大约是-2e9~+2e9;
64位整数long long,范围大约是-9e18~+9e18.竞赛时long long一般就够用,如果有时数据太大,会让你把数据模%一个质数。scanf, printf涉及long long时用"%lld"
双精度浮点数double,注意:计算机算出来的浮点数有一点的精度/误差,所以比较时不能用“==”。USACO题目会要求你把结果乘以某数(比如1e6)后取整,或者评测系统会认为一定范围内的小数都正确。
布尔变量bool,可以用作函数返回值标记成功或失败,可以用一个布尔数组来标记节点有没被处理过。
字符char, 对应 ASCII码,('f'-'a')结果是5.
字符串string, 字符串问题在USACO中通常很简单,不需要特殊数据结构。

1.2时间复杂度
USACO给C++程序的时间限制一般是2s,评测系统可以跑5e8(如果你的常数足够优秀).
时间复杂度是指该程序/算法所做操作的步数的上限,用数据规模的函数来表示O(f(n)).其中已忽略常数和低次项。例如O(n):
for (int i = 1; i <= 5 * n + 17; i++) {
        // constant time code here
}
O(n^2):忽略低次项
for (int i = 1; i <= n; i++) {
        for(int j = 1; j <= n; j++) {
                // constant time code here
        }
}
for (int i = 1; i <= n + 58834; i++) {
        // more constant time code here
}

O(n^2):考虑最坏情况
for (int i = 1; i <= n; i++) {
        for (int j = i; j <= n; j++) {
                // constant time code here
        }
}
二分搜索O(log n)
Ordered set/map or priority queue 每个操作O(log n)
分解质因数,质数判定O(n^1/2)
排序O(n log n)  n<=5e5
遍历n个数的所有子集O(2^n)
遍历n个数的全排列 O(n!)    n<=10

1.3 竞赛常用的STL
数据结构决定数据如何存储/排序/索引,支持什么操作。 各有所长。都支持.size(),.empty()

Iterator像指针,用来遍历container内所有元素。
for (vector<int>::iterator it = myvector.begin(); it != myvector.end(); ++it) {
        cout << *it; //prints the values in the vector using the pointer
}
更常用的是:
for(auto element : v) {
        cout << element; //prints the values in the vector
}

vector可变长数组
vector<int> v;
for(int i = 1; i <= 10; i++){
        v.push_back(i);  //末尾删加O(1)
}
vector<int> v(30); //initial size 30
v.erase(v.begin(), v.begin()+3); //删v[0],v[1],v[2],后面的往前挪,O(n)
v.erase(v.end()-1);
sort(v.begin(), v.end()),

for(int i = 0; i < v.size(); i++){
        cout << v[i] << " ";
}
cout << endl;
int arr[] = {1, 7, 4, 5, 2};
for(int element : arr){
        cout << element << " ";
}

stack堆栈 LIFO
stack<int> s;
s.push(1);
cout << s.top() << endl;
s.pop()

queue队列 FIFO  O(1)
queue<int> q;
q.push(1);
q.pop();
cout << q.front() << endl;

deque双头队列
deque<int> d;
d.push_front(3); // [3]
d.push_back(7); // [3, 7]
d.pop_front(); // [7]
d.pop_back();

priority_queue优先队列 大根堆 删加取O(log n)
priority_queue<int> pq;
pq.push(7); // [7]
pq.push(2); // [7,2]
pq.push(5); // [7,x,x]
cout << pq.top() << endl; // 7
pq.pop(); // [5,2]

set无重复,map的key无重复,valve可重复
unordered_set<int> s;  //哈希hashing, O(1) 常数大
s.insert(2); // [2]
cout << s.count(2) << endl; // 1
set.erase(2); //
for(int element : s){
        cout << element << " "; //遍历顺序随机
}

set<int> s;   //删加取O(log n);不擅长:找第k大的数,比x大的数有多少
s.insert(1); // [1]
s.insert(14); // [1, 14]
s.insert(9); // [1, 9, 14]
s.insert(2); // [1, 2, 9, 14]
cout << *s.upper_bound(7) << \n; // 9
cout << *s.upper_bound(9) << \n; // 14  >9
cout << *s.lower_bound(5) << \n; // 9
cout << *s.lower_bound(9) << \n; // 9   >=9
cout << *s.begin() << \n; // 1
auto it = s.end();
cout << *(--it) << \n; // 14
s.erase(s.upper_bound(6));// [1, 2, 14]  >6

unordered_map<int, int> m; //删加取O(1),哈希hashing, 常数大
m[1] = 5; // [(1, 5)]
m[3] = 14; // [(1, 5); (3, 14)]
m[2] = 7; // [(1, 5); (3, 14); (2, 7)]
m.erase(2); // [(1, 5); (3, 14)] .erese(key) .erase(iterator)
cout << m[1] << \n; // 5
cout << m.count(7) << \n ; // 0 the nbr of key=7

map<int, int> m;
m[3] = 5; // [(3, 5)]
m[11] = 4; // [(3, 5); (11, 4)]
m[10] = 491; // [(3, 5); (10, 491); (11, 4)]
cout << m.lower_bound(10)->first << " " << m.lower_bound(10)->second << \n; // 10 491
cout << m.upper_bound(10)->first << " " << m.upper_bound(10)->second << \n; // 11 4
m.erase(11); // [(3, 5); (10, 491)]
if (m.upper_bound(10) == m.end())
{
        cout << "end" << endl; // Prints end
}

multiset<int> ms;  //O(log n + f)
ms.insert(1); // [1]
ms.insert(14); // [1, 14]
ms.insert(9); // [1, 9, 14]
ms.insert(2); // [1, 2, 9, 14]
ms.insert(9); // [1, 2, 9, 9, 14]
cout << ms.count(4) << \n; // 0

Rank: 13Rank: 13Rank: 13Rank: 13

帖子
300 
经验值
1877  
注册时间
2021-9-14 
BB生日
2009-12-01
回复 张琼4780 的帖子

      有学C++的群吗?求推荐 
小崇崇

初 一

Rank: 11Rank: 11

帖子
139 
经验值
1173  
注册时间
2008-11-9 
BB生日
2010-06-22
回复 aqaq啊 的帖子

能发一下给我吗?
来自[移动wap版]
小崇崇

初 一

Rank: 11Rank: 11

帖子
139 
经验值
1173  
注册时间
2008-11-9 
BB生日
2010-06-22
回复 ss3hj 的帖子

私信发一下你的个人简介和收费之类的信息
来自[移动wap版]
‹ 上一主题|下一主题
华工博士老师带高三毕业生学编程python,二缺一 ...
快速回复

回帖后跳转到最后一页

广东省通信管理局互联网清理整顿 增值电信业务经营许可证:粤B2-20220217粤ICP备09174648号粤网安备案号:4406043011754公安机关备案号:44010602000095 Copyright 2004-2023 盛成科技 All Right Reserved版权所有    版权保护投诉指引

互联网药品信息服务资格证书 电子营业执照 网络文化经营许可证粤网文[2016]7051-1702号

违法和不良信息/涉未成年人有害信息举报电话:020-85505893/18122325185 举报邮箱:kf@mama.cn 涉未成年人有害信息举报专区 中国互联网不良信息举报中心
网络内容从业人员违法违规行为举报:kf@mama.cn 开发者:广州盛成妈妈网络科技股份有限公司 应用版本:11.12.0 应用涉及权限APP隐私协议

回顶部