上一页 1 ··· 46 47 48 49 50 51 52 53 54 ··· 67 下一页
摘要: 状态表示:dp[i]是必须以A[i]结尾的连续序列。 那么只有两种情况: 这个最大和的连续序列只有一个元素,即以A[i]开始,以A[i]结尾。 这个最大和的连续序列有多个元素,即从前面某处A[p]开始(p<i),一直到A[i]结尾。 对第一种情况,最大和就是A[i]本身。 对第二种情况,最大和是dp 阅读全文
posted @ 2021-02-01 19:43 Dazzling! 阅读(50) 评论(0) 推荐(0) 编辑
摘要: set和map的结合题吧,虽然不难,但还是值得记录一下。 多case,注意清空操作,因为这个$\color$了两发。 const int N=110; int a[N],b[N]; set<int> num,group; map<int,int> mp[N]; int n; int main() { 阅读全文
posted @ 2021-02-01 10:19 Dazzling! 阅读(72) 评论(0) 推荐(0) 编辑
摘要: set裸题,话说题目一开始就点明并不是太简单,不要做的太快,交的时候还犹豫了一下。。。 交完:水题=_= 。 const int N=1e5+10; set<char> S; string s1,s2; int main() { getline(cin,s1); getline(cin,s2); f 阅读全文
posted @ 2021-02-01 09:51 Dazzling! 阅读(25) 评论(0) 推荐(0) 编辑
摘要: map裸题吧,当然由于数字大小在 \([1,10^4]\) ,所以开数组记录也是可以的。 const int N=1e5+10; int a[N]; map<int,int> mp; int n; int main() { cin>>n; for(int i=0;i<n;i++) cin>>a[i] 阅读全文
posted @ 2021-02-01 09:42 Dazzling! 阅读(26) 评论(0) 推荐(0) 编辑
摘要: 题意 令“单词”的定义为大小写字母、数字的组合。给出一个字符串,问出现次数最多的单词及其出现次数(一切除了大小写字母、数字之外的字符都作为单词的分隔符)。其中字母不区分大小写,且最后按小写字母输出。 思路 算法主要分为两个步骤:从给定字符串中分割出“单词”、计数出现次数最多的单词。 由题意可知,单词 阅读全文
posted @ 2021-01-31 22:26 Dazzling! 阅读(65) 评论(0) 推荐(0) 编辑
摘要: 题意 给出N个结点的地址address、数据域data以及指针域next,然后给出链表的首地址,要求把在这个链表.上的结点按data值从小到大输出。 样例解释 按照输入,这条链表是这样的(结点格式为[address, data,next]): [00001, 0, 22222]→[22222, 10 阅读全文
posted @ 2021-01-31 21:04 Dazzling! 阅读(67) 评论(0) 推荐(0) 编辑
摘要: 题意 给出两条链表的首地址以及若干结点的地址、数据、下一个结点的地址,求两条链表的首个共用结点的地址。如果两条链表没有共用结点,则输出-1。 思路 由于地址的范围很小,因此可以直接用静态链表,但是依照题目的要求,在结点的结构体中再定义一个bool型变量visited,表示结点是否在第一条链表中出现, 阅读全文
posted @ 2021-01-31 16:56 Dazzling! 阅读(37) 评论(0) 推荐(0) 编辑
摘要: 这题给出了$PAT$的排名规则 在结构体类型中存放题目要求的信息(准考证号、分数、考场号以及考场内排名)。 根据题目要求,需要写一个排序函数cmp,规则如下: 当分数不同时,按分数从大到小排序。 否则,按准考证号从小到大排序。 而算法本体则分为下面三个部分: 按考场读入各考生的信息,并对当前读入考场 阅读全文
posted @ 2021-01-30 20:44 Dazzling! 阅读(47) 评论(0) 推荐(0) 编辑
摘要: 注意进制转换时对0的特殊处理。 int a,b; string s; char tran(int x) { if(x >= 0 && x <= 9) return x+'0'; else return 'A'+x-10; } int get(char c) { if(isdigit(c)) retu 阅读全文
posted @ 2021-01-30 19:23 Dazzling! 阅读(64) 评论(0) 推荐(0) 编辑
摘要: 注意对相加为$0$的特殊处理,结果一定为$0$。 如果进制转换时使用的是while语句而不是do...while语句,那么要注意当A+B为0时需要特判输出0。 int a,b,d; int main() { cin>>a>>b>>d; int sum=a+b; vector<int> res; if 阅读全文
posted @ 2021-01-30 17:27 Dazzling! 阅读(33) 评论(0) 推荐(0) 编辑
上一页 1 ··· 46 47 48 49 50 51 52 53 54 ··· 67 下一页