https://vjudge.net/contest/555003#problem/A
题解:这道题的题意就是找到最长的递增子序列,首先第一个循环要找到数值相同但是位置不同的数字后,第一次寻找到左起点,之后寻找右起点。
由于要满足最长的递增子序列,可以通过循环,不断往左推进左起点,条件是左起点的下标大于2并且满足递减条件:当前位置的数值>=前一个位置的数值
右起点则是不断往右推进:通过循环,条件是右起点的下标小于 n ,并且满足递增条件:当前位置的数值<=下一个位置的数值
#include <iostream>
#include <algorithm>
#include <string.h>
#include <vector>
using namespace std;
int main()
{
int t;
cin>>t;
while(t--)
{
int x,y;
x=y=0;
int n;
cin>>n;
vector<int> a(n+5),b(n+5);
for(int i=1; i<=n; i++)
cin>>a[i];
for(int i=1; i<=n; i++)
cin>>b[i];
for(int i=1; i<=n; i++)
{
if(a[i]!=b[i])
{
if(x==0) x=i;
else y=i;
}
}
while(x>=2&&b[x]>=b[x-1])
x--;
while(y<=n-1&&b[y+1]>=b[y])
y++;
cout<<x<<" "<<y<<endl;
}
}
https://vjudge.net/contest/555003#problem/F
题解:这道题是一道很有意思的题目,最开始以为很难,但是想通了发现很简单。题意是给了两个点,设置障碍物,找到最小的不能让起点到达终点的障碍物的数目。障碍物最多的数目就是将其中一个点包围起来,但是如果任意一个点在四条边界上,就会少用一个障碍物。
#include <iostream>
#include <algorithm>
#include <string.h>
using namespace std;
int main()
{
int t;
cin>>t;
while(t--)
{
int n,m;
cin>>n>>m;
int sx,sy,ex,ey;
cin>>sx>>sy>>ex>>ey;
int ans1=4;
int ans2=4;
if(sx==1||sx==n) ans1--;
if(sy==1||sy==m) ans1--;
if(ex==1||ex==n) ans2--;
if(ey==1||ey==m) ans2--;
int minn=9999;
minn=min(ans1,ans2);
cout<<minn<<endl;
}
}
项目:
重写了数据库:
- 用户表(users)
- id(用户ID,主键)
- email(邮箱)
- password_hash (加密后的密码)
- role(角色:学生或教师)
班级表(classes)
- id(班级ID,主键)
- name (班级名称)
- teacher_id(教师ID,外键,关联到用户表的用户ID)
- 用户-班级关系表(user_class_relations)
- id(关系ID,主键)
- user_id(用户ID,外键,关联到用户表的用户ID)
- class_id(班级ID,外键,关联到班级表的班级ID)
作业表(assignments)
- id(作业ID,主键)
- class_id (班级ID,外键,关联到班级表的班级ID)
- title (作业标题)
- content(作业内容)
- type (作业类型:主观题、选择题)
- due_date(截止日期)
学生作业表(student_assignments)
- id (学生作业ID,主键)
- user_id(学生ID,外键,关联到用户表的用户ID)
- assignment_id(作业ID,外键,关联到作业表的作业ID)
- status (作业状态:未提交、已提交、已打回、已批改)
- submission_type(提交类型:图片、文件、文字)
- submission_content(提交内容)
- 赋值_id(作业ID,外键,关联到作业表的作业ID)
资料表(materials)
- id(资料ID,主键)
- class_id(班级ID,外键,关联到班级表的班级ID)
- teacher_id(教师ID,外键,关联到用户表的用户ID)
- title (资料标题)
- file_path(文件路径)
项目:可以发邮箱验证码,但是发现了几个Bug,只要我没限制,就可以在一分钟之内发送多次验证码,同时,如果多个用户同时发送验证码,就会混乱,这里还需要改进。
由于验证码太拖进度了,决定之后的学习现将验证码发下,先做好主要的功能点再回去添加邮箱。