学习方法

辽师张大为@https://daweizh.github.io/csp/

一、我们的目的是什么?

  1. 想尽办法解决开放性问题(有的有确定解,有的没有确定解,有的有完整解,有的没有完整解),培养建模能力
    有n名同学要乘坐摆渡车从人大附中前往人民大学,第i为同学在ti分钟去等车。
    只有一辆摆渡车在工作,但摆渡车容量可以视为无限大。
    摆渡车从人大附中出发,把车上的同学送到人民大学,再回到人大附中(去接其他同学),
    这样往返一趟总共花费m分钟(同学上下车时间忽略不计)。
    摆渡车要将所有同学都送到人民大学。
    
    凯凯很好奇,如果他能任意安排摆渡车出发时间,那么这些同学的等车时间之和最小为多少呢?
    
    注意:摆渡车回到人大附中后可即刻出发。
    
  2. 把一堆A数据,编程想要的B数据
    • A数据(问题数据)
      500 100
      1335 2800331 801596 3602124 1601463 2400886 400984 2001403 3202001 3600820 
      3200538 2069 1201666 2800551 401103 1449 3600886 1718 3602029 2801372 3200799 
      400806 1602385 400577 1397 2401606 1983 1384 3201336 3201165 2400175 2800674 
      402023 2400238 1600179 801916 2801845 1201949 2802223 1200965 3202257 2800818 
      3202384 837 2400622 401785 1863 1503 2000826 2002047 3201560 2400257 2000837 
      2001678 402164 1601732 1600348 1602129 3200121 983 2400481 1600536 1600776 
      2000247 2801698 800226 2401665 1200843 1602303 1263 2000000 801002 1200220 
      2000615 470 1200272 2801726 1202220 2402184 313 400000 3200476 800886 401168 
      1633 1200630 401545 3202200 1600000 2400113 400493 3201060 2801626 1200773 
      1601792 3200287 2001892 1600869 1601037 802275 1200054 3202095 2002405 3201844 
      1601938 2001031 400402 3602218 1915 402332 400222 310 3201075 1600238 3600278 
      2800422 400185 1591 2165 3601182 2001098 2802192 2000649 2000521 3601572 1202265 
      2001336 3201766 800795 801160 3600781 2801885 3600631 1201633 2000089 1601160 
      3601941 401169 800489 400230 1200545 2400407 1600628 2801869 802081 400719 
      2800238 2402126 400094 400298 3600389 647 1201874 1201269 3201700 3601560 2000933 
      400407 3201512 2801940 3601751 2002187 800871 2002118 2402184 3200073 802256 
      2001539 3200631 400384 802294 3600734 2401161 1602034 773 1201752 2001615 
      2801582 2801450 2213 1602212 3202314 801258 184 2401157 800698 207 401364 
      1600692 2401437 800 2800000 1201808 1201397 2001805 801786 2000816 401461 
      800396 2800311 800087 2002326 2801289 240 3200328 2800492 401821 1201441 801852 
      2000988 1602614 1201560 1501 2001251 401660 1201176 3201419 1201462 2800641 
      801162 1600183 2801747 2800026 402296 2800192 1201306 800268 2801138 2000735 
      3601333 2401020 1154 2800111 801399 1200159 400146 800028 3601573 2001837 
      2800772 800953 2401676 2401885 3202082 2000217 401229 2800958 800609 1168 3600964 
      1600956 3200796 2002022 2401416 3600701 2001128 401891 2400546 3600000 2802106 
      2401983 801916 2401680 801896 1600409 1601876 3201605 3200412 2800884 2402053 
      225 2001034 401697 1601410 1202047 3201842 2002269 400881 3601819 2001502 2400194 
      2800764 1600309 801308 691 2400000 401164 800164 2401322 2802156 3601500 2400912 
      1601261 3201023 1601547 1602529 2401829 1202368 2000351 1602577 1601935 802171 
      3202288 400245 2802264 401953 3200178 1200818 1102 2801205 2800068 3602267 
      801606 1200215 400537 1601349 2802087 3201906 2402282 2801455 2002216 1200000 
      2001770 2401551 2000405 513 2000294 1201664 3602177 1200525 801490 400204 2401449 
      2400825 2801861 3601590 401304 1201257 402204 800210 1201145 2001757 2401101 
      3201484 1186 3600453 1200752 1200272 261 2002198 400054 1202142 2802001 1201049 
      3201235 2001438 359 2800516 3200224 1601574 401071 1414 800877 1601102 2801019 
      3600151 402108 2001551 2400923 3600058 583 82 1200355 3202442 3201733 1602439 934 
      1602561 2801522 801723 3200702 3602365 3202052 2401733 3600435 401619 3600532 
      3601115 1601617 3202309 1602235 3602101 2400689 2801307 1600438 2401902 800124 
      2400794 2401204 2001531 1200898 2401267 1200434 1201397 3601037 464 1600825 3600231 
      1600606 2400294 1200719 1201451 3600772 1600081 1789 402154 0 3200000 1021 401179 
      2800423 2401453 400673 801088 3601852 1200062 3601238 3200976 1202019 800550 1202074 
      802003 3600201 800999 3601819 1602046 2400072 400918 1600121 801692 3201624 3200890 
      2400776 801868 1600329 367 764 2400386 3600692 1200030 2001601 3601422 1200402 
      800451 3601676 3601550 2000182 1438 2400812 3200952 402411 800000 800369 1602344 
      2400673 2000423 2802049 2001955 801187 402511 1200191 2001221 3601402 802275 1601957 
      801547 2801097 1601656 127 1733 1601249 402505 3601346 2400628 3600664 2400783 2800666 
      2802348 1365 3601166 2000461 3600293 1202349 3202106 3200538 800302 802059 3201662 3600028 3201329
      
    • B数据(答案数据)
      13568
      
  3. #include <iostream>
    #include <cstdio>
    #include <algorithm>
    #include <cmath>
    #include <iomanip>
    using namespace std;
    
    int t[1024],sum[1024],dp[1024][128];
    int n,m;
    
    int main(){
    	cin >> n >> m;
    	for(int i=1;i<=n;i++){
    		cin >> t[i];
    	}
    	sort(t+1,t+n+1);
    	
    	for(int i=1;i<=n;i++){
    		sum[i] = sum[i-1]+t[i];
    	}	
    
    	for(int i=1;i<=n;i++){
    		for(int j=0;j<m;j++){
    			int now = t[i]+j;
    			if(j)
    				dp[i][j] = dp[i][j-1];
    			else
    				dp[i][j] = now*i-sum[i];
    				
    			for(int last=max(now-2*m+1,0);last<=now-m;last++){
    				int x = lower_bound(t+1,t+n+1,last+1)-t-1;
    				int y = min(last-t[x],m-1);
    				int tmp = dp[x][y]+(i-x)*now -(sum[i]-sum[x]);
    				if(tmp < dp[i][j])
    					dp[i][j]=tmp;
    			}
    		}
    	}
    	
    	cout << dp[n][m-1] << endl;
    	
    	return 0;
    }
    
  4. 当然,如果你愿意,这活,你可以手工干。如果你现在就有了不用计算机求解的思路,那手工干干,试试看!

二、 我们要学习的基本知识

  1. 基础训练 打字,命令,提示信息,基本概念
  2. C++语言基础
  3. 算法基础
  4. 数据结构基础
  5. 建模基础
  6. 竞赛环境模拟
  7. C++进阶
  8. 算法进阶
  9. 数据结构进阶
  10. 解题能力培养

三、我们要打的比赛

序号 比赛 报名时间 竞赛时间
1 CSP-J 每年9月初 每年11月中
2 CSP-S 每年9月初 每年11月中
3 PTS 每年3月末 每年4月初
4 NOI 每年6月初 每年7月中
5 NOI网上同步赛 每年6月初 每年7月中
6 WC 每年11月初 每年1月末
7 CTS 每年3月初 每年5月初
8 APIO 每年3月初 每年5月初
9 IOI 国家报名 每年8月初

四、我们的学习方法

  1. 通过算法题目学习编程,做到有的放矢
  2. 讲点练面,讲解基本类型题,自己刷题练习
  3. 总结提高,针对反馈问题总结、调整、提高
  4. 按竞赛要求推进学习进度

五、我们的时间投入

  1. 每周2小时的集体学习时间,推进知识,解决问题
  2. 每周4个小时自己刷题时间,就当娱乐,放松,转换脑筋,动手、动脑,心手相连收获快乐
  3. 增强时间意识、规划意识、执行意识,改变思维、立即行动,促进学业优势转化