oj

hdoj 第一题

拟墨画扇 提交于 2020-01-26 11:34:47
HD oj A+B problem Problem Description Calculate A + B. Input Each line will contain two integers A and B. Process to end of file. Output For each case, output A + B in one line. Sample Input 1 1 Sample Output 2 Source Code # include <stdio.h> int main ( ) { int a , b ; while ( scanf ( "%d%d" , & a , & b ) == 2 ) printf ( "%d\n" , a + b ) ; return 0 ; } 来源: CSDN 作者: 空荡荡的房间里学习 链接: https://blog.csdn.net/weixin_46179900/article/details/103981225

东华oj-基础题第40题

我怕爱的太早我们不能终老 提交于 2020-01-25 19:59:26
40 分拆素数和 作者: xxx时间限制: 1S章节: 函数 问题描述 : 把一个偶数拆成两个不同素数的和,有几种拆法呢? 说明: 比如10,可以拆成3+7和5+5以及7+3, 但是3+7与7+3相同,只算一种,5+5由于两个素数相同,不计算在内。 因此,10的拆法只有一种。 输入说明 : 首先输入一个T(不超过500),然后输入T个正的偶数,其值不会超过10000。 输出说明 : 对应每个偶数,输出其拆成不同素数的个数,每个结果占一行。 输入范例 : 4 4 6 8 10 输出范例 : 0 0 1 1 /* T40 分拆素数和 算法概述:对于一个偶数num,从2到num/2 - 1依次测试拆分是否满足要求 */ #include<stdio.h> #include<math.h> // 判断是否为素数 int isPrim(int x) { int i = 0 ; for ( i = 2 ; i <= sqrt ( x ) ; i++) { if (x % i == 0) { return 0 ; } } return 1 ; } // 构建素数表 void primeArray(int primeFlag[], int n) { if ( n < 2 ) return ; int i = 0, j = 0 ; int count = 0 ; for ( i = 0 ; i <

oj。innlab,net 进程跟踪

六眼飞鱼酱① 提交于 2020-01-25 07:31:18
#include<iostream> #include<cstdlib> #include<cmath> #include<cstdio> #include<cstring> #include<algorithm> #include<map> using namespace std; int cnt = 0; char hash[10000]; map<string,int> q; struct e { char ch[1000]; }E[10005]; void read( char str[] ) { int i = 0; char ch[10000]; while( str[i] && str[i] != '(' ) ch[i] = str[i],++i; ch[i] = 0; q[ch] = 0; } int main( ) { char str[1005]; int t = 3; while( t-- && gets( str ) ) { read( str ); } map<string,int>::iterator it; for( it = q.begin(); it != q.end(); ++it ) cout << it -> first<<endl; //system( "pause" ); return 0; } 来源: https://www

东华oj-基础题第53题

帅比萌擦擦* 提交于 2020-01-25 02:18:05
53 进制转换 作者: xxx时间限制: 1S章节: 一维数组 问题描述 : 输入一个十进制数N,将它转换成R进制数输出。 输入说明 : 输入数据包含T个测试实例,每个测试实例包含两个整数N(32位整数,可为负数)和R(2<=R<=16, R<>10)。 输出说明 : 为每个测试实例输出转换后的数,每个输出占一行。如果R大于10,则对应的数字规则参考16进制(比如,10用A表示,等等)。 输入范例 : 20 -0 2 0 3 10 9 10 16 10 15 4763 9 23989 9 -1732 4 3339 5 6901 12 -1892 6 8836 11 12881 12 -21471 8 30350 7 16430 10 -24700 11 11042 14 1707 14 -20522 15 输出范例 : 0 0 11 A A 6472 35814 -123010 101324 3BB1 -12432 6703 7555 -51737 154325 16430 -17615 404A 89D -6132 /* T53进制转换 */ # include <stdio.h> # define MAX_SIZE 33 void tras ( long num , int R ) ; int main ( ) { int T = 0 ; long N = 0 ; int R

木兮的纪中集训感想

…衆ロ難τιáo~ 提交于 2020-01-24 20:13:13
嗯 第一次写博客。。。 就记录一下我这个OI萌新在纪中集训的感受吧 ## 学校 对于纪中,我这几天下来还是非常认可这所学校的;全国最美中学名不虚传(宿舍除外),校园环境非常好,虽然建校将近百年,但维护工作做得非常到位,看不出太多时间的痕迹。 训练 抛开学校环境不讲,这里的教学也是非常棒的,我来这里之前一直觉得集训应该是一件非常累的事,但事实并没有我想象的那么坏。先放一个训练的时间表 8:00 ~ 11:20 打模拟 14:00 ~ 17:30 讲题+自己改程序 19:00 ~ 21:50 自习 其实下午和晚上的时间基本上都是自习,根据个人情况而定。大部分人都是把上午的题改完,有多的时间就在OJ上面自己写总结或逛别人的博客(跟信竞有关的),所以一整天下来的安排相对比较宽松。而且上午的模拟也不会带来太大压力。 虽然是竞赛, 但纪中对我们(包括本校学生)的模拟成绩并不在意。用XC的一句话说:“我们搞竞赛的心态要放好,不要那么注重成绩。你重视的不应该是今天模拟又AK(全对)了。而是你的排名从200多慢慢往前走,逐渐进步 。跟重要的事竞赛的过程 ,而不是最后NOIP的名次。”外人听起来可能感觉XC对外校的学生不想本校那么严。事实上并不是这样的。举个例子:纪中OJ上的排名是记你同一道题的最高分,就是即使你考试没过;你下午或晚上把它改对了。上面你的分数也会改成100。而且本校学生也是

杭电oj 1087——super jump!jump!jump(java实现)

大憨熊 提交于 2020-01-24 17:22:17
question:Super Jumping! Jumping! Jumping! 意思就是找一串数字中的和最大子串 思路:创建另一个数组,每一项是路径数组对应项之前最大子串的和,然后遍历此数组找出最大值即可(也是参考了别人的博客,下面是链接,这是接触的第一道dp题,希望慢慢的自己也会写!) 原文链接 source code: package hduoj; import java.util.Scanner; public class hdoj_1087 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while(true){ int count = sc.nextInt(); if(count==0) break; int[] path = new int[count]; for(int i = 0;i<count;++i){ path[i] = sc.nextInt(); } int[] each_maxmium = new int[count]; each_maxmium[0] = path[0]; for(int i = 1;i<count;++i){ each_maxmium[i] = path[i]; for(int j = 0;j<i;++j){ if

【小米OJ】纯位数

守給你的承諾、 提交于 2020-01-24 14:57:09
在数学中,所谓“纯位数”是指由相同位元重复而组成的自然数。比如在十进制中,1,22,333,555 都是纯位数。 很显然,15 在十进制中不是一个纯位数,但是在二进制 15(10) = 1111(2) 却是一个纯位数。 一个显然的事实是,对于正整数 N,其在 N+1 进制中必然是一个一位数,也就必然是个纯位数。 对于一个正整数 N,试找出使其成为纯位数的最小进制 K。 输入描述: 一个正整数 N (0 < N < 10^8) 输出描述: 使 N 为纯位数的最小进制 K 输入样例: 22 15 输出样例: 10 2 解题思路: 嗐 在小米OJ上分,有一点特别恶心,那就是数据都没有给定的范围。说下这题踩的坑吧我刚开始以为这题是2~16进制的转换,后来发现有个测试点是45322,预期输出是36,再比如测试点输入876569,预期输出是876548。还有一个坑就是测试点输入1。 AC代码 WA代码: #include <bits/stdc++.h> using namespace std; typedef long long ll; string DecToX(ll n,ll x) //将10进制的n转换成x进制的字符串 { string ans = ""; do{ ll t = n%x; n /= x; ans += (t>=0&&t<=9) ? t+'0' : t-10+'a';

力扣 OJ 45. 跳跃游戏 II

送分小仙女□ 提交于 2020-01-23 16:55:08
题目: 给定一个非负整数数组,你最初位于数组的第一个位置。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 你的目标是使用最少的跳跃次数到达数组的最后一个位置。 示例: 输入: [2,3,1,1,4] 输出: 2 解释: 跳到最后一个位置的最小跳跃数是 2。 从下标为 0 跳到下标为 1 的位置,跳 1 步,然后跳 3 步到达数组的最后一个位置。 说明: 假设你总是可以到达数组的最后一个位置。 代码: class Solution { public: int jump(vector<int>& nums,int left,int right) { if(right>=nums.size()-1)return 0; int k=0; for(int i=left;i<=right;i++)k=max(k,i+nums[i]); return jump(nums,right+1,k)+1; } int jump(vector<int>& nums) { return jump(nums,0,0); } }; 来源: CSDN 作者: csuzhucong 链接: https://blog.csdn.net/nameofcsdn/article/details/104075548

OJ题-设计循环队列(力扣)

泪湿孤枕 提交于 2020-01-22 09:59:38
题目: 思路: 不是每次都进行数字搬移(直到后面没空间了再一次性搬移到前面) //数组中实现对列 class MyCircularQueue { private int [ ] array ; //存储空间 private int size ; //当前数据个数 private int front ; //指向队首下标 private int rear ; //指向队尾下一个可用空间 /** Initialize your data structure here. Set the size of the queue to be k. */ public MyCircularQueue ( int k ) { //容量 array = new int [ k ] ; size = 0 ; front = 0 ; rear = 0 ; } /** Insert an element into the circular queue. Return true if the operation is successful. */ public boolean enQueue ( int value ) { //插入成功返回true if ( size == array . length ) { //满了不成功 return false ; } array [ rear ] = value ;

OJ题-输入一个链表,输出该链表中倒数第k个结点(牛客网)

折月煮酒 提交于 2020-01-22 05:47:58
题目:输入一个链表,输出该链表中倒数第k个结点 思路:(第一种)先求出长度,len-k,就是倒数第k个结点 /* public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; } }*/ public class Solution { public ListNode FindKthToTail ( ListNode head , int k ) { int len = 0 ; for ( ListNode cur = head ; cur != null ; cur = cur . next ) { //求长度 len ++ ; } if ( len < k ) { //如果k比len大,则这个结点在该链表中找不到 return null ; } int steps = len - k ; //走len-k步就可以走到那一步 ListNode r = head ; for ( int i = 0 ; i < steps ; i ++ ) { r = r . next ; //!!! } return r ; } } 思路:(第二种)一个快引用先走k步后慢引用开始走,等快引用走到终点后,慢引用刚好在倒数第k个结点处 /* public class ListNode