如何将矢量标准化为范围[-1;1]
我想使用函数norm,因为它会更快.
还让我知道如何在归一化后对该向量进行非规范化?
我正在训练像UvA这样的代码问题,我有这个问题,我必须考虑一组n个考试和k 个参加考试的学生,找出是否可以在两个时间段安排所有考试.
输入 几个测试用例.每一个都以一行包含1 <n <200个不同的考试来开始.第2行具有案例k的数量,其中至少有1名学生参加2次考试.然后,将跟随k行,每行包含2个数字,用于指定上述每个案例的一对检查.(n = 0的输入表示输入结束,不进行处理).
输出: 您必须决定是否可以在2个时段进行检查计划.
例:
输入:
3
3
0 1
1 2
2 0
9
8
0 1
0 2
0 3
0 4
0 5
0 6
0 7
0 8
0
Run Code Online (Sandbox Code Playgroud)
输出继电器:
NOT POSSIBLE.
POSSIBLE.
Run Code Online (Sandbox Code Playgroud)
我认为一般的方法是图形着色,但我真的是一个新手,我可能会承认我在理解问题时遇到了一些麻烦.无论如何,我正在努力做到然后提交它.有人可以帮我为这个问题做一些代码吗?我现在必须处理和理解这个算法,以便以后一遍又一遍地使用它.
我更喜欢C或C++,但如果你愿意,Java对我来说很好;)
提前致谢
我在@GWW的帮助下想到了这段代码,但现在我不能free了char**。
这是我的代码(它只是读取输入文件并在屏幕上打印名称):
/* deallocate2D
corresponding function to dynamically deallocate 2-dimensional array using
* malloc.
* accepts a char** as the "array" to be allocated, and the number of rows.
* as with all dynamic memory allocation, failure to free malloc'ed memory
* will result in memory leaks
*/
void deallocate2D(char** array, int nrows) {
/* deallocate each row */
int i;
for (i = 0; i < nrows; i++) {
free(array[i]);
}
/* deallocate array of …Run Code Online (Sandbox Code Playgroud) 我一直在搜索和搜索,但我找不到一个简单的方法来获取这个:
Query OK, 50000 rows affected (0.35 sec)
Run Code Online (Sandbox Code Playgroud)
以毫秒或微秒为单位.
我怎样才能实现它?
我有一个小DB,仅用于学术目的,我最多有对象表.我在Power Designer中创建了一个实体关系模型(ERM),默认情况下,程序为每个表创建序列ID的索引.
select
value(s) from supplierf where s.name
LIKE '%search%' order by s.name
使用索引进行类似的搜索?我知道可以为名称创建索引,但对于像这样的搜索,我不知道它是如何工作的.让我说,我确实知道Oracle决定何时或是否值得在查询中使用索引,但我可能必须至少尝试在我的BD项目中使用索引
我正在努力制定一个合适的算法,以便从迷宫中的START位置转到EXIT位置.值得一提的是,迷宫是矩形的,最大尺寸为500x500,理论上,DFS可以通过一些分支和绑定技术进行解析......
10 3 4
7 6
3 3 1 2 2 1 0
2 2 2 4 2 2 5
2 2 1 3 0 2 2
2 2 1 3 3 4 2
3 4 4 3 1 1 3
1 2 2 4 2 2 1
Output:
5 1 4 2
Run Code Online (Sandbox Code Playgroud)
说明:
我们的经纪人每次给步都会失去能量,他只能向上,向下,向左和向右移动.此外,如果代理人的剩余能量为零或更少,他就会死亡,所以我们打印出类似"不可能"的东西.
因此,在输入10中是初始代理的能量,3 4是START位置(即第3列,第4行),我们有一个迷宫7x6.把它想象成一种迷宫,在这种迷宫中,我想找到一个让代理人有更好的剩余能量(最短路径)的出口.
如果存在导致相同剩余能量的路径,我们当然选择具有少量步骤的路径.
我需要知道在最坏的情况下DFS到迷宫500x500是否可行于这些限制以及如何操作,存储每个步骤中的剩余能量以及到目前为止所采取的步骤数.
输出意味着代理以剩余能量= 5到达出口位置4以两个步骤到达.如果我们仔细观察,在这个迷宫中,也可以以相同的能量但以3个步骤退出位置3 1(第3列,第1行),因此我们选择更好的一个.
考虑到这些,有人可以帮我一些代码或伪代码吗?我在使用2D阵列时遇到麻烦,以及如何存储剩余的能量,路径(或采取的步骤数)....
编辑: …
我做了很多简单的程序,但我只想char word[30]从文本文件的每一行读取第一个单词.
我试过了,但没有成功.哦,每次我阅读它都要重用那个char.(每次我阅读时都要列出一个有序列表).
任何人都可以通过一种简单而"清晰"的方式向我展示一种从文件中读取这种方式的方法吗?
FILE *fp;
char word[30];
fp = fopen("/myhome/Desktop/tp0_test.txt", "r");
if (fp == NULL) {
printf("Erro ao abrir ficheiro!\n");
} else {
while (!feof(fp)) {
fscanf(fp,"%*[^\n]%s",word);//not working very well...
printf("word read is: %s\n", word);
strcpy(word,""); //is this correct?
}
}
fclose(fp);
Run Code Online (Sandbox Code Playgroud)
例如,对于包含以下内容的文件:
word1 word5
word2 kkk
word3 1322
word4 synsfsdfs
Run Code Online (Sandbox Code Playgroud)
它只打印这个:
word read is: word2
word read is: word3
word read is: word4
word read is:
Run Code Online (Sandbox Code Playgroud) 此代码接收带有10个文件名的输入文件,将它们存储到2d数组中并创建10 + 1个线程:请求者和10个转换器.这只是一个骨架,所以我的线程只打印他们的id,我没有访问任何全局或共享变量或需要互斥的东西.那么,我该怎么做才能避免分段错误呢?
#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
#include <semaphore.h>
#include <string.h>
#include <time.h>
#include <sys/wait.h>
#include <sys/types.h>
#include <sys/time.h>
#include <math.h>
#include <unistd.h>
#include <errno.h>
#define READ_BUFFER_LEN 16
//#define MAX_LENGTH 128
enum {
MAX_LENGTH = 512
};
typedef struct FileNameArray {
size_t nfiles; /* Number of file names allocated and in use */
size_t maxfiles; /* Number of entries allocated in array */
char **files; /* Array of file names */
} FileNameArray;
//GLOBAL vars
int num_images, *threads_ids …Run Code Online (Sandbox Code Playgroud) 我有这个触发器:
create or replace trigger t_calctotal
after insert or update on item_fornecimento
REFERENCING NEW AS NEW OLD AS OLD
for each row
begin
if inserting then
dbms_output.put_line(' On Insert');
update fornecimento f set f.total_enc_fornec = f.total_enc_fornec +:NEW.prec_total_if where f.id_fornecimento = :NEW.id_fornecimento;
else
dbms_output.put_line(' On Update');
update fornecimento f set f.total_enc_fornec = f.total_enc_fornec - :OLD.prec_total_if +:NEW.prec_total_if where f.id_fornecimento = :NEW.id_fornecimento;
end if;
end;
Run Code Online (Sandbox Code Playgroud)
基本上我想通过汇总item_fornecimento中的所有项目来刷新订单的总价值(fornecimento); 我必须以不同的方式对待它,例如它是一个插入,它是一个更新.触发器编译,所有甚至工作一次,但它是唯一的.我已经在sqldeveloper中的item_fornecimento中插入或更新了我的prec_total_if,但是订单的(fornecimento)总数仍未改变:(.
如果它很重要,我的f.total_enc_fornec它会为null,直到它被这个触发器插入的值替换掉; 它打印输出,但它似乎无法更新.
我正在努力解决这个问题:http://uva.onlinejudge.org/external/7/732.html.对于给定的示例,它们给我们原始单词,例如TRIT和目标"anagramed"字符串TIRT.
目标:我们必须输出所有有效的'i'和'o'序列(分别是push和pop),它们从源字符串中产生目标字符串.
所以,我正在考虑计算"i"和"o"的所有排列,但是要减少这种情况:
1)如果当前排列以'o'开始,则停止检查,因为所有下一个排列都将以此pop命令开始,并且从空堆栈中弹出一些东西是无效的命令.
2)如果在检查过程中发现'o'命令并且堆栈中没有任何内容,则跳过该情况.
3)如果找到'i'命令并且输入字符串中没有任何内容,则跳过该情况.
4)如果找到'o'命令并且当前预期的字符不是刚刚弹出的字符,则跳过该情况,因为这将永远不会到达目标字符串.
5)不要搜索输入和目标字符串是否有不同的长度.
但我认为无论如何它可能会让我TLE ......
我知道这个理论:也许是一种排列并且一直在回溯.我实施它有太多困难.
有谁可以请与我分享一些代码或想法吗?
PS:当然,欢迎任何可能减少执行时间的建议.