在这里,我们将给大家分享关于VC6里面一个errorLNK2001:unresolvedexternal问题的知识,让您更了解vc6.0errorlnk2001的本质,同时也会涉及到如何更有效地201
在这里,我们将给大家分享关于VC6里面一个error LNK2001: unresolved external问题的知识,让您更了解vc6.0 error lnk2001的本质,同时也会涉及到如何更有效地2018-2019 ICPC, NEERC, Northern Eurasia Finals (Unrated, Online Mirror, ICPC Rules, Teams Preferr...、c++ - "error LNK2001: unresolved external symbol"无法解析的外部符号、C++ 中两个类的互相引用导致 unresolved external symbol 的问题、C++报错:发生unresolved external问题,应该怎样修改?的内容。
本文目录一览:- VC6里面一个error LNK2001: unresolved external问题(vc6.0 error lnk2001)
- 2018-2019 ICPC, NEERC, Northern Eurasia Finals (Unrated, Online Mirror, ICPC Rules, Teams Preferr...
- c++ - "error LNK2001: unresolved external symbol"无法解析的外部符号
- C++ 中两个类的互相引用导致 unresolved external symbol 的问题
- C++报错:发生unresolved external问题,应该怎样修改?
VC6里面一个error LNK2001: unresolved external问题(vc6.0 error lnk2001)
#include <windows.h>
#include <GL/glew.h>
#include <GL/glut.h>
#define BUFFER_OFFSET(offset) ((GLvoid *) NULL + offset)
#define XStart -0.8
#define XEnd 0.8
#define YStart -0.8
#define YEnd 0.8
#define NumXPoints 11
#define NumYPoints 11
#define NumPoints (NumXPoints*NumYPoints)
#define NumPointsPerStrip (2*NumXPoints)
#define NumStrips (NumYPoints-1)
#define RestartIndex 0xffff
GLfloat color[6][3]={
{1.0,1.0,1.0},{1.0,0.0,0.0},{1.0,1.0,0.0},
{0.0,1.0,0.0},{0.0,1.0,1.0},{0.0,0.0,1.0}
};
int colorIndex =0;
void setVertex()
{
int i,j,n;
GLfloat * vertices;
GLfloat x,y,dx,dy,*tmp;
//glBindBuffer(GL_ARRAY_BUFFER,0);
vertices = (GLfloat *)glMapBuffer(GL_ARRAY_BUFFER,GL_WRITE_ONLY);
if(vertices==NULL){
exit(EXIT_FAILURE);
}
else{
dx = (XEnd-XStart)/(NumXPoints-1);
dy = (YEnd-YStart)/(NumYPoints-1);
tmp = vertices;
n=0;
for(j=0;j<NumYPoints;++j)
{
y=YStart + j*dy;
for (i=0;i<NumXPoints;i++)
{
x = XStart+i*dx;
*tmp++ = color[(colorIndex+i+j)%6][0];
*tmp++ = color[(colorIndex+i+j)%6][1];
*tmp++ = color[(colorIndex+i+j)%6][2];
*tmp++ = x;
*tmp++ = y;
*tmp++ = 0.0;
}
}
glUnmapBuffer(GL_ARRAY_BUFFER);
//glVertexPointer(2,GL_FLOAT,0,BUFFER_OFFSET(0));
glEnableClientState(GL_VERTEX_ARRAY);
glEnableClientState(GL_COLOR_ARRAY);
glInterleavedArrays(GL_C3F_V3F, 0, 0);
}
}
void setIndices()
{
int i,j;
GLushort * indices;
GLushort *index,bottomRow,topRow;
//glBindBuffer(GL_ELEMENT_ARRAY_BUFFER,0);
indices = (unsigned short *)glMapBuffer(GL_ELEMENT_ARRAY_BUFFER,GL_WRITE_ONLY);
if(indices==NULL)
{
exit(EXIT_FAILURE);
}
else{
index = indices;
for(j=0;j<NumStrips;j++){
bottomRow = j*NumYPoints;
topRow= bottomRow+NumYPoints;
for(i=0;i<NumXPoints;i++){
*index++=topRow+i;
*index++=bottomRow+i;
}
*index++=RestartIndex;
}
glUnmapBuffer(GL_ELEMENT_ARRAY_BUFFER);
}
}
void init()
{
GLuint vbo,ebo;
glGenBuffers(1,&vbo);
glBindBuffer(GL_ARRAY_BUFFER,vbo);
glBufferData(GL_ARRAY_BUFFER,6*NumPoints*sizeof(GLfloat),NULL,GL_STATIC_DRAW);
// setVertex();
glGenBuffers(1,&ebo);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER,ebo);
glBufferData(GL_ELEMENT_ARRAY_BUFFER,NumStrips*(NumPointsPerStrip+1)*sizeof(GLushort),NULL,GL_STATIC_DRAW);
// setIndices();
glPrimitiveRestartIndex(RestartIndex);
glEnable(GL_PRIMITIVE_RESTART);
}
void display()
{
setVertex();
setIndices();
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
glColor3f(1,1,1);
glDrawElements(GL_TRIANGLE_STRIP,NumStrips*(NumPointsPerStrip+1),GL_UNSIGNED_SHORT,0);
glutSwapBuffers();
}
void mouse(int button,int state,int x,int y)
{
switch(button){
case GLUT_LEFT_BUTTON:
if(state==GLUT_DOWN)
{
colorIndex++;
if(colorIndex==6)
colorIndex = 0;
glutPostRedisplay();
}
break;
case 27:
{
exit(0);
break;
}
default:
break;
}
}
int main(int argc, char ** argv)
{
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGB);
glutInitWindowSize(250,250);
glutInitWindowPosition(100,100);
glutCreateWindow(argv[0]);
glewInit();
init();
glutDisplayFunc(display);
glutMouseFunc(mouse);
glutMainLoop();
return 0;
}
2018-2019 ICPC, NEERC, Northern Eurasia Finals (Unrated, Online Mirror, ICPC Rules, Teams Preferr...
A. Alice the Fan
Solved.
题意:
两个人打网球,要求teamA 的得分与其他队伍拉开尽量大
输出合法的方案
思路:
$dp[i][j][k][l] 表示 A 赢i局,其他队伍赢j局,两个人比分为k : l 的时候的方案$


1 #include<bits/stdc++.h>
2
3 using namespace std;
4
5 int dp[5][5][210][210];
6 vector<pair<int, int> >out[5][5][210][210];
7
8 void Init()
9 {
10 dp[0][0][0][0] = 1;
11 for(int sum = 0; sum <= 4; ++sum)
12 {
13 for(int l = 0; l <= sum; ++l)
14 {
15 for(int i = 0; i <= 200; ++i)
16 {
17 for(int j = 0; j <= 200; ++j)
18 {
19 int r = sum - l;
20 if(!dp[l][r][i][j]) continue;
21 if(max(l, r) >= 3) continue;
22 int limit = 25;
23 if(sum == 4) limit = 15;
24 for(int tmp = limit; tmp <= 200; ++tmp)
25 {
26 if(i + tmp <= 200 && j + tmp - 2 <= 200 && !dp[l + 1][r][i + tmp][j + tmp - 2])
27 {
28 dp[l + 1][r][i + tmp][j + tmp - 2] = 1;
29 out[l + 1][r][i + tmp][j + tmp - 2] = out[l][r][i][j];
30 out[l + 1][r][i + tmp][j + tmp - 2].push_back(make_pair(tmp, tmp - 2));
31 }
32 if(i + tmp - 2 <= 200 && j + tmp <= 200 && !dp[l][r + 1][i + tmp - 2][j + tmp])
33 {
34 dp[l][r + 1][i + tmp - 2][j + tmp] = 1;
35 out[l][r + 1][i + tmp - 2][j + tmp] = out[l][r][i][j];
36 out[l][r + 1][i + tmp - 2][j + tmp].push_back(make_pair(tmp - 2, tmp));
37 }
38 }
39
40 for(int tmp = 0; tmp <= limit - 2; ++tmp)
41 {
42 if(i + limit <= 200 && j + tmp <= 200 && !dp[l + 1][r][i + limit][j + tmp])
43 {
44 dp[l + 1][r][i + limit][j + tmp] = 1;
45 out[l + 1][r][i + limit][j + tmp] = out[l][r][i][j];
46 out[l + 1][r][i + limit][j + tmp].push_back(make_pair(limit, tmp));
47 }
48 if(i + tmp <= 200 && j + limit <= 200 && !dp[l][r + 1][i + tmp][j + limit])
49 {
50 dp[l][r + 1][i + tmp][j + limit] = 1;
51 out[l][r + 1][i + tmp][j + limit] = out[l][r][i][j];
52 out[l][r + 1][i + tmp][j + limit].push_back(make_pair(tmp, limit));
53 }
54 }
55 }
56 }
57 }
58 }
59 }
60
61 int a, b;
62
63 int main()
64 {
65 Init();
66 int t;
67 scanf("%d", &t);
68 while(t--)
69 {
70 scanf("%d %d", &a, &b);
71 int l = -1, r = -1;
72 if(dp[3][0][a][b])
73 {
74 l = 3;
75 r = 0;
76 }
77 else if(dp[3][1][a][b])
78 {
79 l = 3;
80 r = 1;
81 }
82 else if(dp[3][2][a][b])
83 {
84 l = 3;
85 r = 2;
86 }
87 else if(dp[2][3][a][b])
88 {
89 l = 2;
90 r = 3;
91 }
92 else if(dp[1][3][a][b])
93 {
94 l = 1;
95 r = 3;
96 }
97 else if(dp[0][3][a][b])
98 {
99 l = 0;
100 r = 3;
101 }
102 if(l == -1 && r == -1)
103 {
104 puts("Impossible");
105 }
106 else
107 {
108 printf("%d:%d\n", l, r);
109 int len = out[l][r][a][b].size();
110 for(int i = 0; i < len; ++i) printf("%d:%d%c", out[l][r][a][b][i].first, out[l][r][a][b][i].second, " \n"[i == len - 1]);
111 }
112 }
113 return 0;
114 }
B:Bimatching
Unsolved.
题意:
$有n个男生和m个女生,一个男生要找两个女生组成一个三元祖进行跳舞$
$当且仅当那个男生同时喜欢另两个女生的时候,他们可以组成三元祖跳舞$
$求最多的三元祖个数$
C:Cactus Search
Unsolved.
D:Distance Sum
Unsolved.
题意:
给出一张无向图,求$\sum_{1 <= i <= n} \sum_{1 <= j <= i} d(i, j) $
E:Easy Chess
Solved.
题意:
从左下角出发到右上角,每个点只能停留一次,且必须停留n次
给出方案
思路:
暴力构造
最后一轮的时候注意绕一个圈


1 #include<bits/stdc++.h>
2
3 using namespace std;
4
5 int n;
6
7 int main()
8 {
9 while(~scanf("%d", &n))
10 {
11 if(n == 2)
12 cout << "a1 h1 h8" << endl;
13 else if(n == 3)
14 cout << "a1 a2 h2 h8" << endl;
15 else if(n == 4)
16 cout << "a1 a2 a3 h3 h8" << endl;
17 else if(n == 5)
18 cout << "a1 a2 a3 a4 h4 h8" << endl;
19 else if(n == 6)
20 cout << "a1 a2 a3 a4 a5 h5 h8" << endl;
21 else if(n == 7)
22 cout << "a1 a2 a3 a4 a5 a6 h6 h8" << endl;
23 else if(n == 8)
24 cout << "a1 a2 a3 a4 a5 a6 a7 h7 h8" << endl;
25 else if(n == 9)
26 cout << "a1 a2 a3 a4 a5 a6 a7 a8 g8 h8" << endl;
27 else if(n == 10)
28 cout << "a1 a2 a3 a4 a5 a6 a7 a8 b8 g8 h8" << endl;
29 else if(n == 11)
30 cout << "a1 a2 a3 a4 a5 a6 a7 a8 b8 b7 h7 h8" << endl;
31 else if(n == 12)
32 cout << "a1 a2 a3 a4 a5 a6 a7 a8 b8 b7 b6 h6 h8" << endl;
33 else if(n == 13)
34 cout << "a1 a2 a3 a4 a5 a6 a7 a8 b8 b7 b6 b5 h5 h8" << endl;
35 else if(n == 14)
36 cout << "a1 a2 a3 a4 a5 a6 a7 a8 b8 b7 b6 b5 b4 h4 h8" << endl;
37 else if(n == 15)
38 cout << "a1 a2 a3 a4 a5 a6 a7 a8 b8 b7 b6 b5 b4 b3 h3 h8" << endl;
39 else if(n == 16)
40 cout << "a1 a2 a3 a4 a5 a6 a7 a8 b8 b7 b6 b5 b4 b3 b2 h2 h8" << endl;
41 else if(n == 17)
42 cout << "a1 a2 a3 a4 a5 a6 a7 a8 b8 b7 b6 b5 b4 b3 b2 b1 h1 h8" << endl;
43 else if(n == 18)
44 cout << "a1 a2 a3 a4 a5 a6 a7 a8 b8 b7 b6 b5 b4 b3 b2 b1 c1 h1 h8" << endl;
45 else if(n == 19)
46 cout << "a1 a2 a3 a4 a5 a6 a7 a8 b8 b7 b6 b5 b4 b3 b2 b1 c1 c2 h2 h8" << endl;
47 else if(n == 20)
48 cout << "a1 a2 a3 a4 a5 a6 a7 a8 b8 b7 b6 b5 b4 b3 b2 b1 c1 c2 c3 h3 h8" << endl;
49 else if(n == 21)
50 cout << "a1 a2 a3 a4 a5 a6 a7 a8 b8 b7 b6 b5 b4 b3 b2 b1 c1 c2 c3 c4 h4 h8" << endl;
51 else if(n == 22)
52 cout << "a1 a2 a3 a4 a5 a6 a7 a8 b8 b7 b6 b5 b4 b3 b2 b1 c1 c2 c3 c4 c5 h5 h8" << endl;
53 else if(n == 23)
54 cout << "a1 a2 a3 a4 a5 a6 a7 a8 b8 b7 b6 b5 b4 b3 b2 b1 c1 c2 c3 c4 c5 c6 h6 h8" << endl;
55 else if(n == 24)
56 cout << "a1 a2 a3 a4 a5 a6 a7 a8 b8 b7 b6 b5 b4 b3 b2 b1 c1 c2 c3 c4 c5 c6 c7 h7 h8" << endl;
57 else if(n == 25)
58 cout << "a1 a2 a3 a4 a5 a6 a7 a8 b8 b7 b6 b5 b4 b3 b2 b1 c1 c2 c3 c4 c5 c6 c7 c8 g8 h8" << endl;
59 else if(n == 26)
60 cout << "a1 a2 a3 a4 a5 a6 a7 a8 b8 b7 b6 b5 b4 b3 b2 b1 c1 c2 c3 c4 c5 c6 c7 c8 d8 g8 h8" << endl;
61 else if(n == 27)
62 cout << "a1 a2 a3 a4 a5 a6 a7 a8 b8 b7 b6 b5 b4 b3 b2 b1 c1 c2 c3 c4 c5 c6 c7 c8 d8 d7 h7 h8" << endl;
63 else if(n == 28)
64 cout << "a1 a2 a3 a4 a5 a6 a7 a8 b8 b7 b6 b5 b4 b3 b2 b1 c1 c2 c3 c4 c5 c6 c7 c8 d8 d7 d6 h6 h8" << endl;
65 else if(n == 29)
66 cout << "a1 a2 a3 a4 a5 a6 a7 a8 b8 b7 b6 b5 b4 b3 b2 b1 c1 c2 c3 c4 c5 c6 c7 c8 d8 d7 d6 d5 h5 h8" << endl;
67 else if(n == 30)
68 cout << "a1 a2 a3 a4 a5 a6 a7 a8 b8 b7 b6 b5 b4 b3 b2 b1 c1 c2 c3 c4 c5 c6 c7 c8 d8 d7 d6 d5 d4 h4 h8" << endl;
69 else if(n == 31)
70 cout << "a1 a2 a3 a4 a5 a6 a7 a8 b8 b7 b6 b5 b4 b3 b2 b1 c1 c2 c3 c4 c5 c6 c7 c8 d8 d7 d6 d5 d4 d3 h3 h8" << endl;
71 else if(n == 32)
72 cout << "a1 a2 a3 a4 a5 a6 a7 a8 b8 b7 b6 b5 b4 b3 b2 b1 c1 c2 c3 c4 c5 c6 c7 c8 d8 d7 d6 d5 d4 d3 d2 h2 h8" << endl;
73 else if(n == 33)
74 cout << "a1 a2 a3 a4 a5 a6 a7 a8 b8 b7 b6 b5 b4 b3 b2 b1 c1 c2 c3 c4 c5 c6 c7 c8 d8 d7 d6 d5 d4 d3 d2 d1 h1 h8" << endl;
75 else if(n == 34)
76 cout << "a1 a2 a3 a4 a5 a6 a7 a8 b8 b7 b6 b5 b4 b3 b2 b1 c1 c2 c3 c4 c5 c6 c7 c8 d8 d7 d6 d5 d4 d3 d2 d1 e1 h1 h8" << endl;
77 else if(n == 35)
78 cout << "a1 a2 a3 a4 a5 a6 a7 a8 b8 b7 b6 b5 b4 b3 b2 b1 c1 c2 c3 c4 c5 c6 c7 c8 d8 d7 d6 d5 d4 d3 d2 d1 e1 e2 h2 h8" << endl;
79 else if(n == 36)
80 cout << "a1 a2 a3 a4 a5 a6 a7 a8 b8 b7 b6 b5 b4 b3 b2 b1 c1 c2 c3 c4 c5 c6 c7 c8 d8 d7 d6 d5 d4 d3 d2 d1 e1 e2 e3 h3 h8" << endl;
81 else if(n == 37)
82 cout << "a1 a2 a3 a4 a5 a6 a7 a8 b8 b7 b6 b5 b4 b3 b2 b1 c1 c2 c3 c4 c5 c6 c7 c8 d8 d7 d6 d5 d4 d3 d2 d1 e1 e2 e3 e4 h4 h8" << endl;
83 else if(n == 38)
84 cout << "a1 a2 a3 a4 a5 a6 a7 a8 b8 b7 b6 b5 b4 b3 b2 b1 c1 c2 c3 c4 c5 c6 c7 c8 d8 d7 d6 d5 d4 d3 d2 d1 e1 e2 e3 e4 e5 h5 h8" << endl;
85 else if(n == 39)
86 cout << "a1 a2 a3 a4 a5 a6 a7 a8 b8 b7 b6 b5 b4 b3 b2 b1 c1 c2 c3 c4 c5 c6 c7 c8 d8 d7 d6 d5 d4 d3 d2 d1 e1 e2 e3 e4 e5 e6 h6 h8" << endl;
87 else if(n == 40)
88 cout << "a1 a2 a3 a4 a5 a6 a7 a8 b8 b7 b6 b5 b4 b3 b2 b1 c1 c2 c3 c4 c5 c6 c7 c8 d8 d7 d6 d5 d4 d3 d2 d1 e1 e2 e3 e4 e5 e6 e7 h7 h8" << endl;
89 else if(n == 41)
90 cout << "a1 a2 a3 a4 a5 a6 a7 a8 b8 b7 b6 b5 b4 b3 b2 b1 c1 c2 c3 c4 c5 c6 c7 c8 d8 d7 d6 d5 d4 d3 d2 d1 e1 e2 e3 e4 e5 e6 e7 e8 g8 h8" << endl;
91 else if(n == 42)
92 cout << "a1 a2 a3 a4 a5 a6 a7 a8 b8 b7 b6 b5 b4 b3 b2 b1 c1 c2 c3 c4 c5 c6 c7 c8 d8 d7 d6 d5 d4 d3 d2 d1 e1 e2 e3 e4 e5 e6 e7 e8 f8 g8 h8" << endl;
93 else if(n == 43)
94 cout << "a1 a2 a3 a4 a5 a6 a7 a8 b8 b7 b6 b5 b4 b3 b2 b1 c1 c2 c3 c4 c5 c6 c7 c8 d8 d7 d6 d5 d4 d3 d2 d1 e1 e2 e3 e4 e5 e6 e7 e8 f8 f7 h7 h8" << endl;
95 else if(n == 44)
96 cout << "a1 a2 a3 a4 a5 a6 a7 a8 b8 b7 b6 b5 b4 b3 b2 b1 c1 c2 c3 c4 c5 c6 c7 c8 d8 d7 d6 d5 d4 d3 d2 d1 e1 e2 e3 e4 e5 e6 e7 e8 f8 f7 f6 h6 h8" << endl;
97 else if(n == 45)
98 cout << "a1 a2 a3 a4 a5 a6 a7 a8 b8 b7 b6 b5 b4 b3 b2 b1 c1 c2 c3 c4 c5 c6 c7 c8 d8 d7 d6 d5 d4 d3 d2 d1 e1 e2 e3 e4 e5 e6 e7 e8 f8 f7 f6 f5 h5 h8" << endl;
99 else if(n == 46)
100 cout << "a1 a2 a3 a4 a5 a6 a7 a8 b8 b7 b6 b5 b4 b3 b2 b1 c1 c2 c3 c4 c5 c6 c7 c8 d8 d7 d6 d5 d4 d3 d2 d1 e1 e2 e3 e4 e5 e6 e7 e8 f8 f7 f6 f5 f4 h4 h8" << endl;
101 else if(n == 47)
102 cout << "a1 a2 a3 a4 a5 a6 a7 a8 b8 b7 b6 b5 b4 b3 b2 b1 c1 c2 c3 c4 c5 c6 c7 c8 d8 d7 d6 d5 d4 d3 d2 d1 e1 e2 e3 e4 e5 e6 e7 e8 f8 f7 f6 f5 f4 f3 h3 h8" << endl;
103 else if(n == 48)
104 cout << "a1 a2 a3 a4 a5 a6 a7 a8 b8 b7 b6 b5 b4 b3 b2 b1 c1 c2 c3 c4 c5 c6 c7 c8 d8 d7 d6 d5 d4 d3 d2 d1 e1 e2 e3 e4 e5 e6 e7 e8 f8 f7 f6 f5 f4 f3 f2 h2 h8" << endl;
105 else if(n == 49)
106 cout << "a1 a2 a3 a4 a5 a6 a7 a8 b8 b7 b6 b5 b4 b3 b2 b1 c1 c2 c3 c4 c5 c6 c7 c8 d8 d7 d6 d5 d4 d3 d2 d1 e1 e2 e3 e4 e5 e6 e7 e8 f8 f7 f6 f5 f4 f3 f2 f1 h1 h8" << endl;
107 else if(n == 50)
108 cout << "a1 a2 a3 a4 a5 a6 a7 a8 b8 b7 b6 b5 b4 b3 b2 b1 c1 c2 c3 c4 c5 c6 c7 c8 d8 d7 d6 d5 d4 d3 d2 d1 e1 e2 e3 e4 e5 e6 e7 e8 f8 f7 f6 f5 f4 f3 f2 f1 h1 h2 h8" << endl;
109 else if(n == 51)
110 cout << "a1 a2 a3 a4 a5 a6 a7 a8 b8 b7 b6 b5 b4 b3 b2 b1 c1 c2 c3 c4 c5 c6 c7 c8 d8 d7 d6 d5 d4 d3 d2 d1 e1 e2 e3 e4 e5 e6 e7 e8 f8 f7 f6 f5 f4 f3 f2 f1 h1 h2 h3 h8" << endl;
111 else if(n == 52)
112 cout << "a1 a2 a3 a4 a5 a6 a7 a8 b8 b7 b6 b5 b4 b3 b2 b1 c1 c2 c3 c4 c5 c6 c7 c8 d8 d7 d6 d5 d4 d3 d2 d1 e1 e2 e3 e4 e5 e6 e7 e8 f8 f7 f6 f5 f4 f3 f2 f1 h1 h2 h3 h4 h8" << endl;
113 else if(n == 53)
114 cout << "a1 a2 a3 a4 a5 a6 a7 a8 b8 b7 b6 b5 b4 b3 b2 b1 c1 c2 c3 c4 c5 c6 c7 c8 d8 d7 d6 d5 d4 d3 d2 d1 e1 e2 e3 e4 e5 e6 e7 e8 f8 f7 f6 f5 f4 f3 f2 f1 h1 h2 h3 h4 h5 h8" << endl;
115 else if(n == 54)
116 cout << "a1 a2 a3 a4 a5 a6 a7 a8 b8 b7 b6 b5 b4 b3 b2 b1 c1 c2 c3 c4 c5 c6 c7 c8 d8 d7 d6 d5 d4 d3 d2 d1 e1 e2 e3 e4 e5 e6 e7 e8 f8 f7 f6 f5 f4 f3 f2 f1 h1 h2 h3 h4 h5 h6 h8" << endl;
117 else if(n == 55)
118 cout << "a1 a2 a3 a4 a5 a6 a7 a8 b8 b7 b6 b5 b4 b3 b2 b1 c1 c2 c3 c4 c5 c6 c7 c8 d8 d7 d6 d5 d4 d3 d2 d1 e1 e2 e3 e4 e5 e6 e7 e8 f8 f7 f6 f5 f4 f3 f2 f1 h1 h2 h3 h4 h5 h6 h7 h8" << endl;
119 else if(n == 56)
120 cout << "a1 a2 a3 a4 a5 a6 a7 a8 b8 b7 b6 b5 b4 b3 b2 b1 c1 c2 c3 c4 c5 c6 c7 c8 d8 d7 d6 d5 d4 d3 d2 d1 e1 e2 e3 e4 e5 e6 e7 e8 f8 f7 f6 f5 f4 f3 f2 f1 h1 h2 h3 h4 h5 g5 g6 g8 h8" << endl;
121 else if(n == 57)
122 cout << "a1 a2 a3 a4 a5 a6 a7 a8 b8 b7 b6 b5 b4 b3 b2 b1 c1 c2 c3 c4 c5 c6 c7 c8 d8 d7 d6 d5 d4 d3 d2 d1 e1 e2 e3 e4 e5 e6 e7 e8 f8 f7 f6 f5 f4 f3 f2 f1 h1 h2 h3 h4 h5 g5 g6 g7 g8 h8" << endl;
123 else if(n == 58)
124 cout << "a1 a2 a3 a4 a5 a6 a7 a8 b8 b7 b6 b5 b4 b3 b2 b1 c1 c2 c3 c4 c5 c6 c7 c8 d8 d7 d6 d5 d4 d3 d2 d1 e1 e2 e3 e4 e5 e6 e7 e8 f8 f7 f6 f5 f4 f3 f2 f1 h1 h2 h3 h4 h5 h6 h7 g7 g1 g8 h8" << endl;
125 else if(n == 59)
126 cout << "a1 a2 a3 a4 a5 a6 a7 a8 b8 b7 b6 b5 b4 b3 b2 b1 c1 c2 c3 c4 c5 c6 c7 c8 d8 d7 d6 d5 d4 d3 d2 d1 e1 e2 e3 e4 e5 e6 e7 e8 f8 f7 f6 f5 f4 f3 f2 f1 h1 h2 h3 h4 h5 h6 h7 g7 g1 g2 g8 h8" << endl;
127 else if(n == 60)
128 cout << "a1 a2 a3 a4 a5 a6 a7 a8 b8 b7 b6 b5 b4 b3 b2 b1 c1 c2 c3 c4 c5 c6 c7 c8 d8 d7 d6 d5 d4 d3 d2 d1 e1 e2 e3 e4 e5 e6 e7 e8 f8 f7 f6 f5 f4 f3 f2 f1 h1 h2 h3 h4 h5 h6 h7 g7 g1 g2 g3 g8 h8" << endl;
129 else if(n == 61)
130 cout << "a1 a2 a3 a4 a5 a6 a7 a8 b8 b7 b6 b5 b4 b3 b2 b1 c1 c2 c3 c4 c5 c6 c7 c8 d8 d7 d6 d5 d4 d3 d2 d1 e1 e2 e3 e4 e5 e6 e7 e8 f8 f7 f6 f5 f4 f3 f2 f1 h1 h2 h3 h4 h5 h6 h7 g7 g1 g2 g3 g4 g8 h8" << endl;
131 else if(n == 62)
132 cout << "a1 a2 a3 a4 a5 a6 a7 a8 b8 b7 b6 b5 b4 b3 b2 b1 c1 c2 c3 c4 c5 c6 c7 c8 d8 d7 d6 d5 d4 d3 d2 d1 e1 e2 e3 e4 e5 e6 e7 e8 f8 f7 f6 f5 f4 f3 f2 f1 h1 h2 h3 h4 h5 h6 h7 g7 g1 g2 g3 g4 g5 g8 h8" << endl;
133 else if(n == 63)
134 cout << "a1 a2 a3 a4 a5 a6 a7 a8 b8 b7 b6 b5 b4 b3 b2 b1 c1 c2 c3 c4 c5 c6 c7 c8 d8 d7 d6 d5 d4 d3 d2 d1 e1 e2 e3 e4 e5 e6 e7 e8 f8 f7 f6 f5 f4 f3 f2 f1 h1 h2 h3 h4 h5 h6 h7 g7 g1 g2 g3 g4 g5 g6 g8 h8" << endl;
135 }
136 return 0;
137 }
F. Fractions
Solved.
题意:
$令b_i为n的因数$
$求找到k对 a_i 和 b_i$
使得
$\sum_{i = 1}^{k} \frac {a_i}{b_i} = 1 - \frac{1}{n}$
思路:
显然,我们只需要找到两对
令其为$a_1, b_1, a_2, b_2$
有$\frac{a_1}{b_1} + \frac{a_2}{b_2} = \frac{n - 1}{n}$
有$\frac{a_1 \cdot b_2 + a_2 \cdot b_1} {b_1 \cdot b_2} = \frac{n - 1}{n}$
有 $n = b_1 \cdot b_2$
那么$b_1 = \frac{n}{b_2}$
代入其中 得到
$a_1 \cdot b_2 + \frac{a_2 \cdot n} {b_2} = n - 1$
$固定b_2 枚举a_1 求解 或者 exgcd 也可以$


1 #include<bits/stdc++.h>
2
3 using namespace std;
4
5 typedef long long ll;
6
7 ll n;
8
9 int main()
10 {
11 while(~scanf("%lld", &n))
12 {
13 ll tmp = n;
14 vector<ll>vec;
15 for(ll i = 2; i * i <= tmp; ++i)
16 {
17 if(tmp % i == 0)
18 {
19 ll res = 1;
20 while(tmp % i == 0)
21 {
22 tmp /= i;
23 res *= i;
24 }
25 vec.push_back(res);
26 }
27 }
28 if(tmp != 1) vec.push_back(tmp);
29 if(vec.size() <= 1)
30 {
31 puts("NO");
32 }
33 else
34 {
35 puts("YES\n2");
36 ll num1 = vec[0];
37 for(ll i = 1; ; ++i)
38 {
39 ll num2 = n - 1 - n / num1 * i;
40 if(num2 % num1 == 0)
41 {
42 printf("%lld %lld\n", i, num1);
43 printf("%lld %lld\n", num2 / num1 , n / num1);
44 break;
45 }
46 }
47 }
48 }
49 return 0;
50 }
G. Guest Student
Water.


1 #include<bits/stdc++.h>
2
3 using namespace std;
4
5 typedef long long ll;
6 const int INF = 0x3f3f3f3f;
7 ll n;
8 int used[20];
9
10 int main()
11 {
12 int t;
13 scanf("%d", &t);
14 while(t--)
15 {
16 ll tot = 0;
17 scanf("%lld", &n);
18 for(int i = 1; i <= 7; ++i)
19 {
20 scanf("%d", used + i);
21 tot += used[i];
22 used[i + 7] = used[i];
23 }
24 ll tmp = (n - 1) / tot;
25 ll ans = 7 * tmp;
26 ll remind = n - tmp * tot;
27 ll res = INF;
28 for(int i = 1; i <= 7; ++i)
29 {
30 if(used[i])
31 {
32 ll pos = i;
33 ll tmp = 0;
34 while(tmp < remind) tmp += used[pos++];
35 res = min(res, pos - i);
36 }
37 }
38 printf("%lld\n", ans + res);
39 }
40 return 0;
41 }


1 #include <bits/stdc++.h>
2 using namespace std;
3
4 #define INF 0x3f3f3f3f
5 int used[20], fa[20];
6 int t, n;
7
8 int main()
9 {
10 scanf("%d", &t);
11 while (t--)
12 {
13 scanf("%d", &n);
14 memset(used, 0, sizeof used);
15 memset(fa, 0, sizeof fa);
16 int tot = 0;
17 int pre = 0;
18 for (int i = 1; i <= 7; ++i)
19 {
20 scanf("%d", used + i);
21 tot += used[i];
22 fa[i] = pre;
23 if (used[i]) pre = i;
24 }
25 for (int i = 8; i <= 14; ++i) used[i] = used[i - 7];
26 int remind = n % tot, need = (remind ? n / tot : n / tot - 1) * 7, res = INF;
27 if (!remind) remind = tot;
28 for (int i = 1; i <= 14; ++i) if (used[i])
29 {
30 int cnt = 0, tmp = 0;
31 for (int j = i; j <= 14 && cnt < remind; ++j)
32 {
33 cnt += used[j];
34 ++tmp;
35 }
36 if (cnt == remind) res = min(res, need + tmp);
37 }
38 printf("%d\n", res);
39 }
40 return 0;
41 }
H:Harder Satisfiability
Unsolved.
I. Interval-Free Permutations
Unsolved.
J. JS Minification
Unsolved.
K. King Kog''s Reception
Upsoved.
题意:
维护一个队列,骑士在$a_i时刻进入,并且占用b_i的时间, 求从t_i时刻进入需要等待多少时间才能轮到$
思路:
发现$t_i完事的时间为Max_j <= i(a_j + \sum_{j <= k <= i} b_i)$ 然后线段树维护
置于为什么是这样
我们考虑如果我们选取的$a_j 到 a_i 中间有空白时间段的话,那么后移j肯定使得值更优$
$否则有重叠部分的话,不会有问题$


1 #include <bits/stdc++.h>
2 using namespace std;
3
4 #define ll long long
5 #define N 1000010
6 int q;
7 int p[N], v[N];
8
9 namespace SEG
10 {
11 struct node
12 {
13 ll sum, Max;
14 node ()
15 {
16 sum = Max = 0;
17 }
18 node operator + (const node &other) const
19 {
20 node res;
21 res.sum = sum + other.sum;
22 res.Max = max(other.Max, Max + other.sum);
23 return res;
24 }
25 }a[N << 2], res;
26 void build(int id, int l, int r)
27 {
28 a[id] = node();
29 if (l == r)
30 {
31 a[id].sum = 0;
32 a[id].Max = l;
33 return;
34 }
35 int mid = (l + r) >> 1;
36 build(id << 1, l, mid);
37 build(id << 1 | 1, mid + 1, r);
38 a[id] = a[id << 1] + a[id << 1 | 1];
39 }
40 void update(int id, int l, int r, int pos, int val)
41 {
42 if (l == r)
43 {
44 a[id].sum += val;
45 a[id].Max += val;
46 return;
47 }
48 int mid = (l + r) >> 1;
49 if (pos <= mid) update(id << 1, l, mid, pos, val);
50 else update(id << 1 | 1, mid + 1, r, pos, val);
51 a[id] = a[id << 1] + a[id << 1 | 1];
52 }
53 void query(int id, int l, int r, int ql, int qr)
54 {
55 if (l >= ql && r <= qr)
56 {
57 res = res + a[id];
58 return;
59 }
60 int mid = (l + r) >> 1;
61 if (ql <= mid) query(id << 1, l, mid, ql, qr);
62 if (qr > mid) query(id << 1 | 1, mid + 1, r, ql, qr);
63 }
64 }
65
66 int main()
67 {
68 while (scanf("%d", &q) != EOF)
69 {
70 SEG::build(1, 1, 1000000);
71 char op; int x, y;
72 for (int i = 1; i <= q; ++i)
73 {
74 scanf(" %c%d", &op, p + i);
75 if (op == ''+'')
76 {
77 scanf("%d", v + i);
78 SEG::update(1, 1, 1000000, p[i], v[i]);
79 }
80 else if (op == ''-'')
81 SEG::update(1, 1, 1000000, p[p[i]], -v[p[i]]);
82 else
83 {
84 SEG::res = SEG::node();
85 SEG::query(1, 1, 1000000, 1, p[i]);
86 printf("%lld\n", SEG::res.Max - p[i]);
87 }
88 }
89 }
90 return 0;
91 }
L. Lazyland
Water.


1 #include<bits/stdc++.h>
2
3 using namespace std;
4
5 typedef long long ll;
6
7 const int maxn = 1e5 + 10;
8
9 int n, k;
10 ll vis[maxn];
11 ll arr[maxn], brr[maxn];
12
13 int main()
14 {
15 while(~scanf("%d %d", &n, &k))
16 {
17 for(int i = 1; i <= k; ++i) vis[i] = -1;
18 for(int i = 1; i <= n; ++i) scanf("%lld", arr + i);
19 for(int i = 1; i <= n; ++i) scanf("%lld", brr + i);
20 priority_queue<ll, vector<ll>, greater<ll> >q;
21 int cnt = 0;
22 for(int i = 1; i <= n; ++i)
23 {
24 if(vis[arr[i]] == -1)
25 {
26 cnt++;
27 vis[arr[i]] = i;
28 }
29 else
30 {
31 ll tmp = brr[vis[arr[i]]];
32 if(tmp < brr[i])
33 {
34 q.push(tmp);
35 vis[arr[i]] = i;
36 }
37 else
38 {
39 q.push(brr[i]);
40 }
41 }
42 }
43 ll ans = 0;
44 for(int i = cnt + 1; i <= k; ++i)
45 {
46 ans += q.top();q.pop();
47 }
48 printf("%lld\n", ans);
49 }
50 return 0;
51 }
M:Minegraphed
Upsolved.
题意:
构造一个矩形,使得点的连通性和所给的图一致
思路:
用一个三层的图,一个 $(3 \cdot n - 2) * 3 的截面 第三层用小沟单向连接$
$有多少条边就增加多少小沟,注意用一条横线隔开,前面预留2行为数字$


1 #include <bits/stdc++.h>
2 using namespace std;
3
4 #define N 1010
5 int n, m, G[20][20];
6 char ans[N], tmp[N];
7
8 int main()
9 {
10 int n;
11 while (scanf("%d", &n) != EOF)
12 {
13 int w = 3 * n - 2, m = 0;
14 for (int i = 1; i <= n; ++i) for (int j = 1; j <= n; ++j) scanf("%d", G[i] + j), m += G[i][j];
15 printf("%d %d %d\n", w, (m << 1) + 2, 3);
16 for (int i = 1; i <= w; ++i) tmp[i] = ''#''; tmp[w + 1] = 0;
17 puts(tmp + 1); puts(tmp + 1);
18 for (int i = 1; i <= n; ++i) for (int j = 1; j <= n; ++j) if (G[i][j])
19 {
20 puts(tmp + 1);
21 memcpy(ans, tmp, sizeof tmp);
22 int l = (i - 1) * 3 + 1, r = (j - 1) * 3 + 1;
23 if (l > r) swap(l, r);
24 for (int k = l; k <= r; ++k) ans[k] = ''.'';
25 puts(ans + 1);
26 }
27 puts("");
28 puts(tmp + 1);
29 puts(tmp + 1);
30 for (int i = 1; i <= n; ++i) for (int j = 1; j <= n; ++j) if (G[i][j])
31 {
32 puts(tmp + 1);
33 memcpy(ans, tmp, sizeof tmp);
34 int l = (i - 1) * 3 + 1, r = (j - 1) * 3 + 1;
35 ans[l] = ans[r] = ''.'';
36 if (l < r) ans[l + 1] = ''.'';
37 else ans[l - 1] = ''.'';
38 puts(ans + 1);
39 }
40 puts("");
41 memcpy(ans, tmp, sizeof tmp);
42 for (int i = 1, j = 1; i <= w; i += 3, ++j) ans[i] = j + ''0'', tmp[i] = ''.'';
43 puts(ans + 1);
44 puts(tmp + 1);
45 for (int i = 1; i <= n; ++i) for (int j = 1; j <= n; ++j) if (G[i][j])
46 puts(tmp + 1), puts(tmp + 1);
47 }
48 return 0;
49 }
c++ - "error LNK2001: unresolved external symbol"无法解析的外部符号
-
方法声明,未定义
- vs中没有编译该源文件,即没有添加到项目中
- 没有链接对应的库
- 没有添加项目依赖
- 编译的时候加载对应的lib
- 如果是新建的文件,可能是没有添加到项目中,所以没有进行编译就没有对应的库就链接不到对应的符号。
-
变量声明,未定义
- 类的静态变量在类里面声明了,但是没有在类外面进行定义。
class A{public:static int a;}; int A::a;
- 类的静态变量在类里面声明了,但是没有在类外面进行定义。
特别注意:.h
文件只放声明.cpp
只放定义。
C++ 中两个类的互相引用导致 unresolved external symbol 的问题
编译环境:Visual Studio 2015 Community Edition
定义了两个类,Matrix4x4,表示一个 4x4 的矩阵,Vector4 表示一个四维向量。在 Matrix4x4 中重载 [] 返回它的一个行向量,重载 () 返回它的某一个元素;在 Vector4 中重载 * 来处理行向量右乘一个矩阵,这两个类需要互相引用,我做了下面的处理:
// Matrix4x4.h #pragma once namespace MiniMathLib { class Vector4; class Matrix4x4 { public: Matrix4x4(); Matrix4x4(const Vector4 &r0, const Vector4 &r1, const Vector4 &r2, const Vector4 &r3); Matrix4x4(const Matrix4x4 &m); // 返回位于矩阵 r 行,c 列的元素 inline float operator()(int r, int c) const; // 返回矩阵的第 r 行 inline Vector4 operator[](int r) const; private: float m[4][4]; }; } // Vector4.h #pragma once namespace MiniMathLib { class Matrix4x4; class Vector4 { public: float x, y, z, w; Vector4(); Vector4(float x, float y, float z, float w); Vector4(const Vector4 &v); Vector4 operator+(const Vector4 &v) const; Vector4 operator-(const Vector4 &v) const; Vector4 operator*(float f) const; Vector4 operator*(const Vector4 &v) const; friend Vector4 operator*(float f, const Vector4 &v); // 行向量与 4x4 矩阵的相乘 Vector4 operator*(const Matrix4x4 &m) const; }; } // Matrix4x4.cpp #include "Matrix4x4.h" #include "Vector4.h" namespace MiniMathLib { // 省略一些函数定义 float Matrix4x4::operator()(int r, int c) const { return m[r][c]; } float Matrix4x4::operator[](int r) const { return Vector4(m[r][0], m[r][1], m[r][2], m[r][3]); } } // Vector4.cpp #include "Vector4.h" #include "Matrix4x4.h" namespace MiniMathLib { // 省略一些函数定义 Vector4 Vector4::operator*(const Matrix4x4 &m) const { return x * m[0] + y * m[1] + z * m[2] + w * m[3]; } }
Vector4 operator*(const Matrix4x4 &m) const;
Vector4 Vector4::operator*(const Matrix4x4 &m) const { m(0, 0); return Vector4(); }
C++报错:发生unresolved external问题,应该怎样修改?
在使用
一、检查变量、函数或对象是否正确定义
首先,需要检查代码文件中所有变量、函数或对象是否已正确定义。确保它们的名称和类型与源代码中引用它们的地方匹配。也请确保变量、函数或对象的作用域正确。
例如,如果变量定义在.h文件中,而不是在.cpp文件中,则在使用变量的.cpp文件中必须包含该.h文件。
二、检查是否存在缺少源文件的情况
立即学习“C++免费学习笔记(深入)”;
还有一种常见的“Unresolved External”的原因是,漏掉了某些源代码文件。如果您使用了多个源代码文件构建项目,则需要将所有文件都添加到项目中。检查是否有文件被误删、移动或更改了名称。确保源代码文件在项目构建过程中被正确地编译。
三、添加缺少的库文件
有时,可能需要使用库文件来支持代码。例如,如果您正在使用Windows.h头文件,则需要添加Kernel32.lib库文件来支持在代码中使用Windows API。
要解决这个问题,需要确保库文件可用并且已正确添加到项目中。在Visual Studio IDE中,可以打开项目属性并选择“链接器”选项卡来添加库文件。
四、重新生成项目
如果以上操作都检查完全,并且问题仍然存在,请尝试重新生成整个项目。有时,由于某些文件或资源的问题,会导致链接不正确。使用重新生成可以确保项目彻底清除并重新构建。
高级技巧:
1、使用#pragma once或头文件守卫
使用#pragma once或头文件守卫可以确保头文件只被包含一次。如果包含头文件的代码文件多次被编译,则可能会导致“Unresolved External”错误。
请注意,在某些较旧的编译器版本中,无法使用#pragma once,请改用头文件守卫。
2、使用include guards
如果您定义了自己的类或结构,需要使用include guards来确保头文件只被包含一次。这可以避免多次定义同一个类或结构的问题,导致“Unresolved External”错误。
3、使用命名空间
将定义放在正确的命名空间中可以避免命名冲突。如果两个不同的源代码文件定义了名称相同的变量或函数,则编译器无法区分它们。这可能会导致“Unresolved External”错误。
在代码中包含正确的命名空间可以避免这个问题。在源代码文件顶部添加“using namespace”命令或限定符,可以确保使用的函数、变量或对象来自正确的命名空间。
这是一些可以帮助您解决C++中“Unresolved External”问题的技巧和方法。要记住的关键点是,首先需要检查代码是否正确定义,然后检查是否存在缺少的源代码文件或库文件。如果仍然无法解决问题,则可以尝试使用高级技巧来避免出现命名冲突和重复定义。
以上就是C++报错:发生unresolved external问题,应该怎样修改?的详细内容,更多请关注php中文网其它相关文章!
今天的关于VC6里面一个error LNK2001: unresolved external问题和vc6.0 error lnk2001的分享已经结束,谢谢您的关注,如果想了解更多关于2018-2019 ICPC, NEERC, Northern Eurasia Finals (Unrated, Online Mirror, ICPC Rules, Teams Preferr...、c++ - "error LNK2001: unresolved external symbol"无法解析的外部符号、C++ 中两个类的互相引用导致 unresolved external symbol 的问题、C++报错:发生unresolved external问题,应该怎样修改?的相关知识,请在本站进行查询。
本文标签: