一、不错的网站

CCF CCSP 竞赛历年资料

官网 http://118.190.20.162/home.page

二、基础套路

 

循环输入

 

数组标记法(数组下标-数值 的映射)

 

两个矩阵相乘

map<long long, map<long long, long long> > ans;
for(int i=1;i<=d;i++){
	for(int j=1;j<=d;j++){
		int x=0;
		for(int k=1;k<=n;k++) x+=K[i][k]*V[k][j];
		ans[i][j] = x;
	}
}

 

三、一点题记录

放上刷的基础题

//202305-1 重复局面
#include <iostream>
#include <vector>

using namespace std;
int v[1000][1000] ={0};//二维数组放main里段错误不知为何

int main()
{

    int n;
    cin >> n ;

    vector <string > ll;
    string strAll;

    //吞多余的空行
    string str1;
    getline(cin, str1);
    
    for (int i = 1; i <= n*8; i++)
    {
        string str;
	    getline(cin, str);
        strAll += str;
        
        if (i%8==0)
        {
            ll.push_back(strAll);
            strAll.clear();
        }        
    }

    for (int i = 0; i < n; i++)
    {        
        int count = 0;
        for (int j = i; j >= 0; j--)
        {
            if(ll[i].compare(ll[j]) == 0){
                count++;
            }
        }
        cout<<count<<endl;
        cout<<ll[i]<<endl;;
    }
    

    system("pause");
    return 0;
}

 

 

//202212-1 现值计算
#include <iostream>
#include <cmath>
using namespace std;


int main()
{
    int n;
    double m;
    cin >> n >> m ;

    int v[1000] = {0};
    for(int i=0;i<n+1;i++)
    {
        int x;
        cin >> x;
        v[i] = x;        
    }
    //读值套路完毕↑

    double sum = v[0];
    for(int i=1;i<n+1;i++)
    {
        sum +=  v[i] * pow((1+m),-i); 
    }    
    cout << sum << endl;

    system("pause");
    return 0;
}